JDBC配置连接
通过DBUtil类连接properties配置文件实现JDBC连接
一、DBUtil
java连接JDBC原文件
源码:
package com.oracle.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DBUtil {
//1读取配置文件
private static Properties pro = new Properties();
private static DataSource ds = null;
static {
try(
InputStream in = DBUtil.class.getResourceAsStream("/mysql.properties");//配置文件的路径存储src ,执行时访问为bin目录
//InputStream in = DBUtil.class.getResourceAsStream("oracle.properties");//配置文件的路径为当前类(DBUtil)同包
){
//把属性集加载到Properties中
pro.load(in);
//创建DataSource对象
ds = BasicDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//创建ThreadLocal对象
private static ThreadLocal<Connection> local = new ThreadLocal<>();
private static Connection conn = null;
/**
* 获取连接的方法
* @return
* @throws Exception
*/
public static Connection getConn() throws Exception {
//---从ThreadLocal获取连接对象
conn = local.get();
if(conn==null || conn.isClosed()) {
//从DataSource中获取连接对象
conn = ds.getConnection();
//----存储到ThreadLocal中
local.set(conn);
}
return conn;
}
public static void closeConn() {
try {
//-----从ThreadLocal获取连接对象
conn = local.get();
if(conn!=null && !conn.isClosed()) {
conn.close();
conn = null;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//-------------------从ThreadLocal中移除连接
local.remove();
}
}
}
二、Properties配置文件
- 放在src根目录或者跟DBUtil放在一个包中(同时需注意上便文件的路径)
1.mysql配置文件
mysql-8配置文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
username=root //账号
password=chenyang666 //密码
maxActive=50
maxIdle=20
maxWait=60000
mysql-5配置文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8
username=root //账号
password=chenyang666 //密码
maxActive=50
maxIdle=20
maxWait=60000
2.oracle配置文件
代码如下(示例):
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:XE/orcl//(XE版本就写XE,企业版就写orcl)
username=scott //账号
password=tiger //密码
maxActive=50
maxIdle=20
maxWait=60000