本文主要内容:阿里巴巴的Druid数据库连接池、Apache的DBUtils
一、使用数据库连接池连接MySQL数据库
常见数据库连接池
- C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection和Statement池的DataSources对象
- DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池。DBCP可以直接的在应用程序中使用
- Druid:Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser,支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等
- 更多数据库连接池请访问数据库连接池.百度百科
以Druid为例,介绍使用数据库连接池连接MySQL数据库
-
声明配置文件(druid.properties)
url=jdbc:mysql://localhost:3306/mt?serverTimezone=UTC&rewriteBatchedStatements=true //第一个参数必须serverTimezone必须添加 第二个参数是开始MySQL批量操作
username=root
password=你自己的MySQL密码
driverClassName=com.mysql.cj.jdbc.Driver
initialSize=10 //初始池子中的连接数
maxActive=10 //默认活跃连接数是8,我们初始设置为10就必须更改为10 -
使用Druid数据连接池连接MySQL
//使用Druid连接MySQL数据库,这里使用静态代码块的方式,避免数据库连接池的重复创建
//注意:使用前需要导包
private static DataSource source;
static {
Properties pros = new Properties();
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");
try {
if (is != null) {
pros.load(is);
}
source = DruidDataSourceFactory.createDataSource(pros);
} catch (Exception e) {
e.printStackTrace();
}
}
public static DataSource getDataSource(){
return source;
}
public static Connection getConnection() {
Connection connection = null;
try {
connection = source.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
二、Apache的DBUtils
-
commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能
-
常用API:
- org.apache.commons.dbutils.QueryRunner //执行增删改查API
- org.apache.commons.dbutis.ResultSetHandler //结果集(就是对查询结果的封装)
- 工具类: org.apache.commons.dbutls.DbUtils //可以使用工具类的API来关闭资源连接,如Connection,PreparedStatement等资源的关闭
- org.apache.commons.dbutils.QueryRunner //执行增删改查API
-
注意:使用前需要导包