Druid连接池与Spring中的JdbcTemplate
使用Druid连接池与Spring中的JdbcTemplate结合
为了能在IDEA中能够操作数据库,就必须使用到JDBC技术,为了更加简化开发效率,从而又引入了德鲁伊(Druid)连接池技术。在Spring中,又提供了更加简化的操作数据库的方式——JdbcTemplate。Spring框架对JDBC的简单封装,提供了一个JDBCTemplate对象简化开发。
一、Druid连接池
实现步骤
1. 导入jar包
(1)在项目下创建一个libs文件夹,用于存放各种jar包
(2)导入JDBC驱动jar包 —— mysql-connector-java-5.1.37-bin.jar
(3)导入Duridjar包 —— druid-1.0.9.jar
(4)导完jar包后,右键点击libs文件,选择Add As Library,选择默认选项
2. 定义Druid配置文件
(1)创建Resource Bundle文件(properties形式)可以叫任意名称,可以放在任意目录下
(2)配置信息
```
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/itcast
username=root
password=123456
initialSize=5
maxActive=10
maxWait=3000
```
3. 定义工具类
工具类代码:
public class DuridUtils {
//1.定义成员变量 DataSource
private static DataSource ds ;
static{
try {
//1.加载配置文件
Properties pro = new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//2.获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
/**
* 释放资源
*/
public static void close(Statement stmt,Connection conn){
/* if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();//归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}*/
close(null,stmt,conn);
}
public static void close(ResultSet rs , Statement stmt, Connection conn){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();//归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 获取连接池方法
*/
public static DataSource getDataSource(){
return ds;
}
}
二、JDBCTemplate实现
不需手动要申请链接,不需要手动释放资源,jar包中包含了这些功能
实现步骤
1.导入jar包(五个jar包)
2.创建JdbcTemplate对象,依赖于数据源DataSource
JdbcTemplate template = new JdbcTemplate(数据源);(要使用到Druid连接池中的数据源)
3.调用JdbcTemplate的方法来完成CRUD的操作
(1)update():执行DML语句。增、删、改语句
(2)queryForMap():查询结果将结果集封装为map集合,将列名作为key,将值作为value 将这条记录封装为一个map集合
注意:这个方法查询的结果集长度只能是1
(3)queryForList():查询结果将结果集封装为list集合
注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中
(4)query():查询结果,将结果封装为JavaBean对象
query的参数:RowMapper
一般我们使用BeanPropertyRowMapper实现类。可以完成数据到JavaBean的自动封装
new BeanPropertyRowMapper<类型>(类型.class)
(5)queryForObject:查询结果,将结果封装为对象
一般用于聚合函数的查询
代码实现
public class JdbcTemplateDemo {
public static void main(String[] args) {
JdbcTemplate template=new JdbcTemplate(DuridUtils.getDataSource());
String sql="update account set money=? where id=?";
int count =template.update(sql,11,1); //这里的值根据问号(?)的顺序存入
System.out.println(count);
System.out.println(" ");
}
}
本文作者:Porker_ZHU
本文链接:https://www.cnblogs.com/Porker-ZHU/p/16218126.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步