数据库连接池之_Druid简单使用
2024-08-30 04:35:34
数据库连接池:
连接池是创建和管理一个连接的缓冲池的技术,这些连接真备好被任何需要他们的线程使用,可以对传统的JDBCjava数据库连接()进行优化
在实际开发中,我们需要频繁的操作数据库,这就意味着我们要不断的创建连接对象,而频繁创建连接对象并且销毁连接对象相对来讲是比较耗时的,针对于这种情况,我们可以创建一个池子出来,里面放了一些连接对象,用的时候从里面拿,用完之后再还回去,这个池子就是数据库连接池.
常见的数据库连接池:
DBCP: (DataBase Connection Pool)数据库连接池, 由Apache公司开发.
Druid: 阿里旗下的连接池技术.
C3P0: 目前使用它的开源项目有: Hibernate, Spring等.
Druid连接池:
1,自动读取配置文件
@Test
public void demo2(){
Connection connection=null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null; try {
//读取配置文件
Properties properties =new Properties();
properties.load(new FileInputStream("src//config.properties"));
DataSource dataSource=DruidDataSourceFactory.createDataSource(properties); //获取连接
connection =dataSource .getConnection(); String sql="select * from Book;";
preparedStatement=connection.prepareStatement(sql);
resultSet=preparedStatement.executeQuery();
while(resultSet.next()){
System.out.println(resultSet.getInt("id")+" "+resultSet.getString("bname"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.close(resultSet,preparedStatement,connection);
} }
2,手动设置参数
@Test
public void demo() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet resultSet = null; DruidDataSource dds = new DruidDataSource();
dds.setDriverClassName("com.mysql.jdbc.Driver");
dds.setUrl("jdbc:mysql:///day03");
dds.setUsername("root");
dds.setPassword("123"); try {
conn = dds.getConnection();
String sql = "select * from Book;";
ps = conn.prepareStatement(sql);
resultSet = ps.executeQuery();
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + " " + resultSet.getString("bname"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
ps = null;
}
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
resultSet = null;
}
}
}
最新文章
- jquery .attr()
- clang -rewrite-objc的使用点滴
- 【9-20】vimtutor学习笔记
- cf 363D
- MySQL_前缀索引_建立
- c#_错误处理_基础
- bzoj 3831 Little Bird (单调队列优化dp)
- [原]用C#模拟实现扑克牌发牌、排序程序…
- 五种情况下会刷新控件状态(刷新所有子FWinControls的显示)——从DFM读取数据时、新增加子控件时、重新创建当前控件的句柄时、设置父控件时、显示状态被改变时
- Winform 无边框窗口移动自定义边框粗细颜色
- Android界面(1) 使用TextView实现跑马灯效果
- ReactiveSwift源码解析(一) Event与Observer代码实现
- 提交到APPStore出现ERROR ITMS-90474
- 吝啬的国度 nyoj
- python从入门到实践-6章字典
- 南京邮电大学java程序设计作业在线编程第八次作业
- 这个表明将http协议转成websocket协议
- 常用的几个CSS前端效果
- win10、Ubuntu14.04双系统正确卸载Ubuntu的方法
- BZOJ 4833: [Lydsy1704月赛]最小公倍佩尔数(数论 + 最值反演)