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

先看这篇记录 

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

 

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

 

/**
 * 
 */
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

 

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

 

posted @ 2018-11-12 17:35  海蓝7  阅读(1048)  评论(0编辑  收藏  举报