先看这篇记录 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("数据库已关闭!"); } }