java连接postgresql代码及maven配置
postgresql数据库有默认数据库用户postgres,密码安装库时自己输入;
当然也可以连接其他用户;
maven依赖
db2依赖
org.apache.commons commons-dbcp2 provided
连接postgresql的依赖
postgresql postgresql 8.2-504.jdbc3
Oracle
com.oracle ojdbc14 10.2.0.2.0
MySQL
mysql mysql-connector-java 5.0.5
QL Server
net.sourceforge.jtds jtds 1.2
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连接数据库通用代码
创建连接并执行业务逻辑
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秒钟执行一次 private void process() throws SQLException { logger.info("开始-->"); try { Connection conn_gauss = GaussUttils.getConnection("heheda", "123456"); // 二级页面出数语句 GaussUttils.executeFileSqls(conn_gauss); ResultSet duowei = GaussUttils.getset_dwfxhz(conn_gauss); while(duowei.next()){ System.out.println("1--->"); } //关闭数据库连接。 conn_gauss.close(); } catch (Exception e) { e.printStackTrace(); } logger.info("结束-->"); } }
数据库通用类
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); //创建数据库连接。 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=小强签名设计"; // GaussDB //String driver = "org.postgresql.Driver"; //String sourceURL = "jdbc:postgresql://110.110.110.110:25308/db_heheda"; Connection conn; try { //加载数据库驱动。 Class.forName(driver).newInstance(); } catch (Exception e) { e.printStackTrace(); return null; } try { //创建数据库连接。 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; } // 执行文件中的SQL语句 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("该语句有问题,请排查-->" + 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(" "); // 解决拼接的两行中间可能没有空格的问题 } } String[] sqls = gaussqls.toString().split(";"); br.close(); return sqls; } catch (Exception e) { e.printStackTrace(); return null; } } }
maven配置
com.oracle ojdbc6 11.2.0.1.0 com.huawei.sqlserver sqljdbc4 1.0.0 com.huawei.gaussDb gsjdbc4 1.0.0
注:有的驱动包maven配置好从网上下载不下来,我这里是都已经有个相应个驱动包,然后手动安装的。
如执行以下命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=E:\ojdbc6.jar
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。