java中连接到数据库可以通过JDBC连接,也可以通过数据库连接池连接数据库,连接池主要在在程序启动的时候建立多个连接,当程序使用的时候就从池中获取连接,当程序把数据库连接使用结束之后,将连接归还给池。
常见连接池
dbcp , apache的官方实现,早期项目中大多数项目使用的连接池 http://commons.apache.org/proper/commons-dbcp/
Druid , alibaba的实现, 效率上比dbcp要好一些 https://github.com/alibaba/druid
以Druid连接池为例
使用数据库连接池连接数据库时需要先写配置文件
1. 在路径中创建database.properties文件 内容
maxActive 最大活跃数
initialSize 初始连接数
minIdle 最小空闲数
druid.url=jdbc:mysql://127.0.0.1:3306/talk_sys?serverTimezone=Asia/Shanghai
druid.username=root
druid.password=root
druid.maxActive=20
druid.initialSize=1
druid.minIdle=1
2.java中代码实现
/**
* 配置文件路径
*/
private static final String CONFIG_FILE_PATH = "/datasource.properties";
/**
* 设置一个全局数据源对象
*/
private static DruidDataSource dataSource;
/**
* 加载配置,为了同一时刻只有一个方法调用
*/
private synchronized static void loadConfig() {
// 配置文件输入流
InputStream configStream = DbHelper.class.getResourceAsStream(CONFIG_FILE_PATH);
if(null!=configStream) {
Properties config = new Properties();
try {
config.load(configStream);
} catch (IOException e) {
e.printStackTrace();
}
dataSource = new DruidDataSource();
dataSource.setConnectProperties(config);
}
}
/** 连接获取方法
* @return
*/
public static Connection getConn() {
if(null==dataSource) {
loadConfig();
}
try {
return dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
完成如上操作后即可哦通过getConn()方法来获得数据库连接。
网友评论