先看这篇记录

java连接3种数据库 JdbcLinkDB 测试 --201801 配置文件放在jar外面 读取,遇到的问题 - 海蓝steven - 博客园
https://www.cnblogs.com/rogge7/p/8269842.html

//-------------------------------

需求:

1、同时测试 mssql,mysql,oracle 三种数据库

2、jar包的形式,配置文件在jar包外面,随时修改

需要找到连接这三个数据库的驱动jar包,添加到项目中

过程:

刚开始不小心打包成jar包 运行jar 提示以下异常:

改成:把项目打包成
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


packagecom.chanbo.yy;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.Properties;/***@author**/  
public classConnectionFactory {/*** 数据库连接类*/  
      
    //数据库驱动程序类名
    private static String DRIVER = "";//连接数据库的URL
    private static String URL = "";//连接数据库的用户名
    private static String USERNAME = "";//连接数据库的密码
    private static String PASSWORD = "";privateConnectionFactory(){  
}
static{
getPropertiesInfo();
}
/*** 该方法用来获得属性文件中的driver、url、username、password*/ private static voidgetPropertiesInfo(){
Properties prop
= newProperties();//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 staticConnection 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();
}
returnconn;
}
}

ConnectionFactory.java


/****/
packagecom.chanbo.yy;importjava.sql.Connection;importjava.util.Scanner;/***@authoryanfazhongxin
*
*/ public classLinkOracleTest {/***@paramargs*/ public static voidmain(String[] args) {//TODO Auto-generated method stub Connection conn =ConnectionFactory.getConnnection();
DbClose.close(conn);
Scanner scan
= newScanner(System.in);
String read
=scan.nextLine();
}

}

LinkOracleTest .java


packagecom.chanbo.yy;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/***@author**/  
public classDbClose {/*** 数据库关闭类*/  
    /*** 关闭数据库连接 
*
@paramconn 连接类对象*/ public static voidclose(Connection conn){if(null !=conn){try{
conn.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
}
/*** 关闭数据库语句
*
@paramstmt 语句对象*/ public static voidclose(PreparedStatement pre){if(null !=pre){try{
pre.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
}
/***关闭数据库结果集
*
@paramrs 结果集对象*/ public static voidclose(ResultSet rs){if(null !=rs){try{
rs.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
}
public static voidclose(ResultSet rs,PreparedStatement pre,Connection conn){
close(rs);
close(pre,conn);
}
public static voidclose(PreparedStatement pre,Connection conn){
close(pre);
close(conn);
System.out.println(
"数据库已关闭!");
}
}

DbClose.java

标签: none

添加新评论