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

需求:

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

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

java连接3种数据库 JdbcLinkDB  --201801_sql

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

 

过程:

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

java连接3种数据库 JdbcLinkDB  --201801_oracle_02

 

改成:把项目打包成 Runnable jar,选择主函数入口

java连接3种数据库 JdbcLinkDB  --201801_java_03

运行成功,文件结构如下,考过去使用,Jdk1.8.0_102

java连接3种数据库 JdbcLinkDB  --201801_数据库_04

 

一些文件:

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


 


java连接3种数据库 JdbcLinkDB  --201801_oracle_05java连接3种数据库 JdbcLinkDB  --201801_java_06


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;
}
}

ConnectionFactory.java

 


java连接3种数据库 JdbcLinkDB  --201801_oracle_05java连接3种数据库 JdbcLinkDB  --201801_java_06


/**
*
*/
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();
}

}

LinkOracleTest .java

 


java连接3种数据库 JdbcLinkDB  --201801_oracle_05java连接3种数据库 JdbcLinkDB  --201801_java_06


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("数据库已关闭!");
}
}

DbClose.java