无非就两种,一种用配置文件,一种不用配置文件。建议是用配置文件,灵活一些
使用dbcp就要先导入jar包,可以到官网下载,也可以在这里下载:java连接数据库的相关工具类
连接相当简单
package cn.bl.v4_DataSource.dbcp;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test;
/**
* DBCP纯Java方式
* @author BarryLee
* @2018年9月23日@上午9:43:36
*/
public class Demo {
@Test
public void test1() throws SQLException {
//创建datasource
BasicDataSource dSource = new BasicDataSource();
//初始化
dSource.setDriverClassName("com.mysql.jdbc.Driver");
dSource.setUrl("jdbc:mysql://127.0.0.1:3306/aa?useUnicode=true&characterEncoding=UTF-8");
dSource.setUsername("root");
dSource.setPassword("000");
//尝试着获取一些参数
System.out.println(dSource.getConnection().hashCode());//30639342
//System.out.println(dSource.getLoginTimeout());//不支持~~~
System.out.println(dSource.getMaxActive());//8
System.out.println(dSource.getMaxIdle());//8
System.out.println(dSource.getMaxWait());//-1
}
@Test
public void test() throws Exception {
Properties properties = new Properties();
//两种方式都OK
//properties.load(Demo2.class.getResourceAsStream("dbcp.properties"));
properties.load(Demo.class.getClassLoader().getResourceAsStream("pro/dbcp.properties"));
DataSource dSource = BasicDataSourceFactory.createDataSource(properties);
System.out.println(dSource.getConnection().hashCode());
}
}
配置文件如下:
username=root
password=000
url=jdbc:mysql://127.0.0.1:3306/aa?useUnicode=true&characterEncoding=utf-8
driver=com.mysql.jdbc.Driver
最后提供一个工具类
package cn.bl.v4_DataSource.dbcp;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DBCPUtils {
private DBCPUtils() {}
private static DataSource ds = null;
private static ThreadLocal<Connection>tLocal = new ThreadLocal<>();
static {
Properties properties = new Properties();
try {
properties.load(DBCPUtils.class.getResourceAsStream("dbcp.properties"));
ds = BasicDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* dbcp工具获取数据库连接
* @return
*/
public static Connection getConnection() {
Connection con = tLocal.get();
if(con==null) {
try {
con = ds.getConnection();
tLocal.set(con);
} catch (SQLException e) {
e.printStackTrace();
}
}
return con;
}
/*@Test--在这里做测试一定要先将私有化构造注掉,否则会有初始化错误
public void test() {
System.out.println(getConnection());
}*/
}