【JDBC】使用连接池重写工具类
-
- 连接池原理:
理解为存放多个连接的集合。
目的:解决建立数据库连接耗费资源和时间很多的问题,提高性能。
-
- 常见连接池
Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池!
连接池名称 | 描述 |
---|---|
Druid | Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。 |
DBCP | java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开。 |
C3P0 | 一个开源的JDBC连接池,目前使用它的开源项目有Hibernate,Spring等。 |
-
- Druid连接池概述
Druid(德鲁伊)连接池是一个由alibaba开发的开源项目,源码托管在github上,如果需要下载jar包,需要从maven的中央仓库中下。
github地址:https://github.com/alibaba/druid/
maven仓库地址:http://www.mvnrepository.com/artifact/com.alibaba/druid
-
- Druid使用
使用Druid连接池优化工具类DruidUtil,工具类提供两个方法:
获取连接
public static Connection getConn ()
关闭资源
public static void closeResource(ResultSet rs, PreparedStatement pst, Connection conn)
-
-
- 添加jar包
-
-
-
- 在src表创建properties文件
-
文件的内容如下:
driverClassName = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/day05pre
username = root
password = root
initialSize = 5
maxActive = 10
minIdle = 3
maxWait = 60000
解释:
驱动的名字:com.mysql.jdbc.Driver
driverClassName = com.mysql.jdbc.Driver
数据库的地址:jdbc:mysql://localhost:3306/day05pre
url = jdbc:mysql://localhost:3306/day05pre
数据库管理账号和密码
username = root
password = root
初始链接数:5
initialSize = 5
最大并行链接数:10
maxActive = 10
最小空闲数 3
minIdle = 3
最大等待时间(毫秒):
maxWait = 60000
-
-
- 书写DruidUtil工具类
-
做三件事:
1.读取properties文件中的数据 创建连接池对象。
2.创建一个方法返回一个连接对象
3.创建一个方法关闭各种资源
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DruidUtil {
/**定义一个连接池*/
private static DataSource dataSource;
/**初始化连接池*/
static{
try {
InputStream is =
DruidUtil.class.getClassLoader().getResourceAsStream("druid.properties");
Properties prop = new Properties();
prop.load(is);
dataSource = DruidDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
}
/**通过连接池获取连接*/
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
/**关闭连接,归还资源*/
public static void closeAll(Connection con,PreparedStatement ps,ResultSet rs) throws SQLException{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(con!=null){
con.close();
}
}
}
-
-
- 使用工具类完成对数据表的查询
-
/*
* 使用Druid连接池工具类 完成查询student表中所有的数据
*
* */
@Test
public void findAllDruid() throws SQLException{
// 1.获取链接
Connection conn = DruidUtil.getConnection();
// 2.书写SQL语句 获取发射器
String sql = "select * from student";
PreparedStatement pst = conn.prepareStatement(sql);
// 3.执行并处理结果集
ResultSet rs = pst.executeQuery();
while(rs.next()){
//分别获取各个字段的值
int sid = rs.getInt("sid");
int age = rs.getInt("age");
String name = rs.getString("name");
String sex = rs.getString("sex");
//显示结果
System.out.println("sid="+sid+" name="+name+" age="+age+" sex="+sex);
}
// 4.关闭资源
DruidUtil.closeAll(conn, pst, rs);
}
相关文章
- Beyond Compare 4 文件同步对比工具
- LRTimelapse 6 Mac(专业延迟摄影渲染工具)
- Mac卸载程序和清洁工具:App Cleaner & Uninstaller for mac
- 全文检索工具solr:第一章:理论知识
- 封装avalonia指定组件允许拖动的工具类
- 推荐一款好用的数据一致性校验工具
- 一个使用js做的一个PDF预览&PDF标注(在线批注)工具
- 剑桥计算机博士推荐,毕业之前,我需要掌握这9个工具
- Ajax的工具类AjaxUtils,使用struts返回Json类型详解编程语言
- 极速搭建:JDBC连接MySQL数据库(jdbc连接mysql数据库)
- MySQL的JDBC版本:最新功能亮点(mysql的jdbc版本)
- 简单步骤学习JDBC操作MySQL(jdbc操作mysql)
- JDBC简易教程:连接SQL Server(jdbc连接sqlserver)
- 使用JDBC连接Oracle数据库(jdbc链接oracle)
- Oracle操作的必备工具:一次性解决多个问题(oracle操作工具)
- 使用JDBC连接Oracle数据库的5个必要步骤(jdbc连接oracle数据库步骤)
- 制作Linux启动盘:有效便捷的工具(制作linux启动盘工具)
- Oracle工具:简单而高效的数据库管理(oracle工具使用)
- GitHub 欢迎一切 CI 工具
- 常见的持续集成工具
- MySQL连接快捷实用工具(mysql连接工具类)
- 技术结合充分利用JDBC与Redis,提升系统性能(jdbc-redis)
- MySQL使用JDBC连接数据库的指南(mysql 的jdbc)
- 利用nmap工具为Oracle服务加固安全(nmap oracle)
- 使用JDBC简单调用Oracle数据库(jdbc调用oracle)
- 使用JDBC注册Oracle数据库(jdbc注册oracle)
- 让Oracle数据库尽情享受JDBC格式(jdbc格式oracle)
- 号Oracle JDBC串号连接技术实战(oracle jdbc串)
- 关于VS2012自带的性能分析工具使用实例(图文介绍)