java連接postgresql數(shù)據(jù)庫(kù)代碼及maven配置方式
java連接postgresql代碼及maven配置
postgresql數(shù)據(jù)庫(kù)有默認(rèn)數(shù)據(jù)庫(kù)用戶postgres,密碼安裝庫(kù)時(shí)自己輸入;
當(dāng)然也可以連接其他用戶;
maven依賴(lài)
db2依賴(lài)
<dependency> ? ? <groupId>org.apache.commons</groupId> ? ? <artifactId>commons-dbcp2</artifactId> ? ? <scope>provided</scope> </dependency>
連接postgresql的依賴(lài)
<dependency> ? ? ? ? <groupId>postgresql</groupId> ? ? ? ? <artifactId>postgresql</artifactId> ? ? ? ? <version>8.2-504.jdbc3</version> </dependency>
Oracle
<dependency> ? ? ? ? <groupId>com.oracle</groupId> ? ? ? ? <artifactId>ojdbc14</artifactId> ? ? ? ? <version>10.2.0.2.0</version> </dependency>
MySQL
?<dependency> ? ? ? ? <groupId>mysql</groupId> ? ? ? ? <artifactId>mysql-connector-java</artifactId> ? ? ? ? <version>5.0.5</version> </dependency>
QL Server
<dependency> ? ? ? ? <groupId>net.sourceforge.jtds</groupId> ? ? ? ? <artifactId>jtds</artifactId> ? ? ? ? <version>1.2</version> </dependency>
java代碼:
package com.weimanage.data;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
import java.util.Properties;
public class getDataSource {
? ? @Bean(name="dataSource")
? ? public static DataSource getDataSource(){
? ? ? ? Properties props = new Properties();
? ? ? ? props.setProperty("driver","org.postgresql.Driver");
? ? ? ? props.setProperty("url","jdbc:postgresql://127.0.0.1:5432/postgres");
? ? ? ? props.setProperty("user","postgres");
? ? ? ? props.setProperty("password ","1");
? ? ? ? DataSource dataSource = null;
? ? ? ? try {
? ? ? ? ? ? dataSource = BasicDataSourceFactory.createDataSource(props);
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? return dataSource;
? ? }
}Springboo連接數(shù)據(jù)庫(kù)通用代碼
創(chuàng)建連接并執(zhí)行業(yè)務(wù)邏輯
package com.hui.xiaoqiang;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@Component
public class ScheduledTask {
? ? private static final Logger logger = LoggerFactory.getLogger(ScheduledTask.class);
? ? @Scheduled(cron="*/10 * * * * ?") // 每10秒鐘執(zhí)行一次
? ? private void process() throws SQLException {
? ? ? ? logger.info("開(kāi)始-->");
? ? ? ? try {
? ? ? ? ? ? Connection conn_gauss = GaussUttils.getConnection("heheda", "123456");
? ? ? ? ? ? // 二級(jí)頁(yè)面出數(shù)語(yǔ)句
? ? ? ? ? ? GaussUttils.executeFileSqls(conn_gauss);
? ? ? ? ? ? ResultSet duowei = GaussUttils.getset_dwfxhz(conn_gauss);
? ? ? ? ? ? while(duowei.next()){
? ? ? ? ? ? ? ? System.out.println("1--->");
? ? ? ? ? ? }
? ? ? ? ? ? //關(guān)閉數(shù)據(jù)庫(kù)連接。
? ? ? ? ? ? conn_gauss.close();
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? logger.info("結(jié)束-->");
? ? }
}數(shù)據(jù)庫(kù)通用類(lèi)
package com.hui.xiaoqiang;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.*;
public class ConnectionUtil {
? ? private static final Logger logger = LoggerFactory.getLogger(ConnectionUtil.class);
? ? //創(chuàng)建數(shù)據(jù)庫(kù)連接。
? ? public static Connection getConnection(String username, String passwd) {
? ? ? ? // oracle
? ? ? ? String driver = "oracle.jdbc.driver.OracleDriver";
? ? ? ? String sourceURL = "jdbc:oracle:thin:@//110.110.110.110:1521/xiaoqiang";
? ? ? ? // sqlserver
? ? ? ? //String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
? ? ? ? //String sourceURL = "jdbc:sqlserver://110.110.110.110:1433;DatabaseName=小強(qiáng)簽名設(shè)計(jì)";
? ? ? ? // GaussDB
? ? ? ? //String driver = "org.postgresql.Driver";
? ? ? ? //String sourceURL = "jdbc:postgresql://110.110.110.110:25308/db_heheda"; ? ? ? ?
? ? ? ? Connection conn;
? ? ? ? try {
? ? ? ? ? ? //加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)。
? ? ? ? ? ? Class.forName(driver).newInstance();
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? try {
? ? ? ? ? ? //創(chuàng)建數(shù)據(jù)庫(kù)連接。
? ? ? ? ? ? conn = DriverManager.getConnection(sourceURL, username, passwd);
? ? ? ? ? ? System.out.println("Connection gauss succeed!");
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? return conn;
? ? };
? ? public static ResultSet getset_dwfxhz(Connection conn){
? ? ? ? String sql = "SELECT * FROM xiaoqiang.gr_js where ROWNUM <=5"; //oracle
? ? ? ? ResultSet set = null;
? ? ? ? try {
? ? ? ? ? ? Statement stmt = null;
? ? ? ? ? ? stmt = conn.createStatement();
? ? ? ? ? ? set = stmt.executeQuery(sql);
? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? ? ? return set;
? ? }
? ? // 執(zhí)行文件中的SQL語(yǔ)句
? ? public static void executeFileSqls(Connection conn) {
? ? ? ? Statement stmt = null;
? ? ? ? try {
? ? ? ? ? ? stmt = conn.createStatement();
? ? ? ? ? ? String[] flieSqls = getSqls("heheda.sql"); // 把該文件放到resources目錄下即可,注意文件命名不要用中文
? ? ? ? ? ? for (int i = 0; i < flieSqls.length; i++) {
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? stmt.execute(flieSqls[i]);
? ? ? ? ? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? ? ? System.out.println("該語(yǔ)句有問(wèn)題,請(qǐng)排查-->" + flieSqls[i]);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? stmt.close();
? ? ? ? } catch (SQLException e) {
? ? ? ? ? ? if (stmt != null) {
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? stmt.close();
? ? ? ? ? ? ? ? } catch (SQLException e1) {
? ? ? ? ? ? ? ? ? ? e1.printStackTrace();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
? ? public static String[] getSqls(String filename) {
? ? ? ? try {
? ? ? ? ? ? InputStream io = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
? ? ? ? ? ? InputStreamReader isr = new InputStreamReader(io, "utf-8");
? ? ? ? ? ? BufferedReader br = new BufferedReader(isr);
? ? ? ? ? ? String line;
? ? ? ? ? ? StringBuilder gaussqls = new StringBuilder();
? ? ? ? ? ? while ((line = br.readLine()) != null) {
? ? ? ? ? ? ? ? if (!line.contains("--")) { // 把注釋行去掉
? ? ? ? ? ? ? ? ? ? gaussqls.append(line);
? ? ? ? ? ? ? ? ? ? gaussqls.append(" "); // 解決拼接的兩行中間可能沒(méi)有空格的問(wèn)題
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? String[] sqls = gaussqls.toString().split(";");
? ? ? ? ? ? br.close();
? ? ? ? ? ? return sqls;
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return null;
? ? ? ? }
? ? }
}maven配置
? ? ? ? <!--oracle--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.oracle</groupId> ? ? ? ? ? ? <artifactId>ojdbc6</artifactId> ? ? ? ? ? ? <version>11.2.0.1.0</version> ? ? ? ? </dependency> ? ? ? ? <!--sqlserver--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.huawei.sqlserver</groupId> ? ? ? ? ? ? <artifactId>sqljdbc4</artifactId> ? ? ? ? ? ? <version>1.0.0</version> ? ? ? ? </dependency> ? ? ? ? <!--GaussDB--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.huawei.gaussDb</groupId> ? ? ? ? ? ? <artifactId>gsjdbc4</artifactId> ? ? ? ? ? ? <version>1.0.0</version> ? ? ? ? </dependency>
注:有的驅(qū)動(dòng)包maven配置好從網(wǎng)上下載不下來(lái),我這里是都已經(jīng)有個(gè)相應(yīng)個(gè)驅(qū)動(dòng)包,然后手動(dòng)安裝的。
如執(zhí)行以下命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=E:\ojdbc6.jar
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java JDBC主要組件連接數(shù)據(jù)庫(kù)及執(zhí)行SQL過(guò)程示例全面詳解
- 圖數(shù)據(jù)庫(kù)NebulaGraph的Java 數(shù)據(jù)解析實(shí)踐與指導(dǎo)詳解
- 關(guān)于Java中使用jdbc連接數(shù)據(jù)庫(kù)中文出現(xiàn)亂碼的問(wèn)題
- Java通過(guò)數(shù)據(jù)庫(kù)表生成實(shí)體類(lèi)詳細(xì)過(guò)程
- 使用Java實(shí)現(xiàn)先查詢緩存再查詢數(shù)據(jù)庫(kù)
- 詳解如何使用tldb數(shù)據(jù)庫(kù)的java客戶端
相關(guān)文章
Java實(shí)現(xiàn)Map集合二級(jí)聯(lián)動(dòng)示例
Java實(shí)現(xiàn)Map集合二級(jí)聯(lián)動(dòng)示例,需要的朋友可以參考下2014-03-03
Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐指南
有參數(shù)傳遞的地方都少不了參數(shù)校驗(yàn),在web開(kāi)發(fā)中前端的參數(shù)校驗(yàn)是為了用戶體驗(yàn),后端的參數(shù)校驗(yàn)是為了安全,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot項(xiàng)目傳參校驗(yàn)的最佳實(shí)踐,需要的朋友可以參考下2022-04-04
springboot2學(xué)習(xí)世界著名程序springboot開(kāi)發(fā)體驗(yàn)
這篇文章主要為大家介紹了世界著名程序springboot開(kāi)發(fā)體驗(yàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
關(guān)于SpringBoot創(chuàng)建存儲(chǔ)令牌的媒介類(lèi)和過(guò)濾器的問(wèn)題
這篇文章主要介紹了SpringBoot創(chuàng)建存儲(chǔ)令牌的媒介類(lèi)和過(guò)濾器的問(wèn)題,需要在配置文件中,添加JWT需要的密匙,過(guò)期時(shí)間和緩存過(guò)期時(shí)間,具體實(shí)例代碼參考下本文2021-09-09
Unity2019-2020 個(gè)人版官方免費(fèi)激活詳細(xì)方法
這篇文章主要介紹了Unity2019-2020 個(gè)人版官方免費(fèi)激活詳細(xì)方法,激活方法分位兩種一種是激活新許可證,一種是手動(dòng)激活,感興趣的朋友跟隨小編一起看看吧2021-04-04
Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能示例
這篇文章主要介紹了Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能,結(jié)合實(shí)例形式分析了java數(shù)學(xué)運(yùn)算的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-01-01

