先看這篇記錄 html
java鏈接3種數據庫 JdbcLinkDB 測試 --201801 配置文件放在jar外面 讀取,遇到的問題 - 海藍steven - 博客園
https://www.cnblogs.com/rogge7/p/8269842.htmljava
//-------------------------------mysql
需求:sql
一、同時測試 mssql,mysql,oracle 三種數據庫數據庫
二、jar包的形式,配置文件在jar包外面,隨時修改oracle
須要找到鏈接這三個數據庫的驅動jar包,添加到項目中ide
過程:函數
剛開始不當心打包成jar包 運行jar 提示如下異常:sqlserver
改爲:把項目打包成 Runnable jar,選擇主函數入口測試
運行成功,文件結構以下,考過去使用,Jdk1.8.0_102
一些文件:
start.bat 文件
java -version java -jar JdbcLinkDB.jar pause
jdbcCon.properties文件
# connect oracle #driver = oracle.jdbc.driver.OracleDriver #url = jdbc:oracle:thin:@localhost:1521:orcl #username = system #password = 123333 # connect mssql #driver = com.microsoft.sqlserver.jdbc.SQLServerDriver #url = jdbc:sqlserver://127.0.0.1:1433;DatabaseName=GpsDB #username = sa #password = 123456 # connect mysql driver = com.mysql.jdbc.Driver url = jdbc:mysql://121.12.249.239:14015/fsjxbdb1 username = fsjxbadmin password = fsjxbadmin!23
package com.chanbo.yy; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; /** * @author * */ public class ConnectionFactory { /** * 數據庫鏈接類 */ //數據庫驅動程序類名 private static String DRIVER = ""; //鏈接數據庫的URL private static String URL = ""; //鏈接數據庫的用戶名 private static String USERNAME = ""; //鏈接數據庫的密碼 private static String PASSWORD = ""; private ConnectionFactory(){ } static{ getPropertiesInfo(); } /** * 該方法用來得到屬性文件中的driver、url、username、password */ private static void getPropertiesInfo(){ Properties prop = new Properties(); // InputStream inStream = Thread.currentThread().getContextClassLoader() // .getResourceAsStream("jdbcCon.properties"); // InputStream inStream = this.getClass().getResourceAsStream("/jdbcCon.properties"); //FileInputStream aa ; try{ //得到相應的鍵值對 // prop.load(inStream); prop.load(new FileInputStream("jdbcCon.properties")); // prop.load(aa); }catch(IOException e){ e.printStackTrace(); } //根據相應的鍵得到對應的值 DRIVER = prop.getProperty("driver"); URL = prop.getProperty("url"); USERNAME = prop.getProperty("username"); PASSWORD = prop.getProperty("password"); } /** * 該方法用來加載驅動,並得到數據庫的鏈接對象 * * @return 數據庫鏈接對象conn */ public static Connection getConnnection(){ Connection conn = null; try{ //加載數據庫驅動程序 Class.forName(DRIVER); }catch(ClassNotFoundException e){ e.printStackTrace(); } try{ System.out.println("-- 鏈接URL : "+URL); //得到數據庫鏈接對象 conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); System.out.println("-- 鏈接成功"); }catch(SQLException e){ System.out.println("-- 鏈接失敗"); e.printStackTrace(); } return conn; } }
/** * */ package com.chanbo.yy; import java.sql.Connection; import java.util.Scanner; /** * @author yanfazhongxin * */ public class LinkOracleTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = ConnectionFactory.getConnnection(); DbClose.close(conn); Scanner scan = new Scanner(System.in); String read = scan.nextLine(); } }
package com.chanbo.yy; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * @author * */ public class DbClose { /** * 數據庫關閉類 */ /** * 關閉數據庫鏈接 * @param conn 鏈接類對象 */ public static void close(Connection conn){ if(null != conn){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } /** * 關閉數據庫語句 * @param stmt 語句對象 */ public static void close(PreparedStatement pre){ if(null != pre){ try{ pre.close(); }catch(SQLException e){ e.printStackTrace(); } } } /** *關閉數據庫結果集 * @param rs 結果集對象 */ public static void close(ResultSet rs){ if(null != rs){ try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } } } public static void close(ResultSet rs,PreparedStatement pre,Connection conn){ close(rs); close(pre,conn); } public static void close(PreparedStatement pre,Connection conn){ close(pre); close(conn); System.out.println("數據庫已關閉!"); } }