为减小系统对数据库的获取连接和关闭连接的开销,连接池便是一个不错的选择
- 将DataSource封装成一个工具类,使用时调用即可
package com.kong.JDBCUtils;
import org.apache.commons.dbcp.BasicDataSource;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* 使用了properties+连接池;
* 推荐使用此类获取dataSource方法
*/
public class JDBCUtils {
private static BasicDataSource basicDataSource = new BasicDataSource();
private static String driverName;
private static String url;
private static String username;
private static String password;
static{
InputStream inputStream = JDBCUtils.class.getClassLoader().getResourceAsStream("database.properties");
Properties properties = new Properties();
try {
properties.load(inputStream);
} catch (IOException e) {
throw new RuntimeException(e+"读取配置文件失败");
}
driverName = properties.getProperty("driver");
url = properties.getProperty("url");
username = properties.getProperty("name");
password = properties.getProperty("password");
//设置DataSource基本信息
basicDataSource.setDriverClassName(driverName);
basicDataSource.setUrl(url);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
//设置DataSource其他连接信息
basicDataSource.setInitialSize(10);//初始化的连接数
basicDataSource.setMaxActive(8);//最大的连接数
basicDataSource.setMaxIdle(5);//最大空闲数
basicDataSource.setMinIdle(1);//最小空闲数
}
public static DataSource getbasicDataSource(){
return basicDataSource;
}
}
- 调用
public class DBUtilsLinkDemo {
public static void main(String[] args) throws IOException {
try {
Connection connection = JDBCUtils.getbasicDataSource().getConnection();
System.out.println(connection);
} catch (SQLException e) {
throw new RuntimeException(e+"database connect fail");
}
}
}
- 结果
^_^