• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

使用Druid连接池与Spring中的JdbcTemplate结合

为了能在想法中能够操作数据库,就必须使用到数据库编程技术,为了更加简化开发效率,从而又引入了德鲁伊(德鲁伊)连接池技术。在春天中,又提供了更加简化的操作数据库的方式—— JDBC模板。春天框架对数据库编程的简单封装,提供了一个使用对象简化开发。

一、Druid连接池

实现步骤

1. 导入jar包

(1)在项目下创建一个激光诱导击穿光谱仪文件夹,用于存放各种冲突包

2022-05-03T02:41:52.png

(2)导入数据库编程驱动冲突包—— mysql连接器Java 5。1 .37 bin。冲突

2022-05-03T02:48:17.png

(3)导入杜里贾尔包——德鲁伊-1.0.9.jar

2022-05-03T02:49:14.png

(4)导完冲突包后,右键点击激光诱导击穿光谱仪文件,选择添加为库,选择默认选项

2022-05-03T02:51:16.png

2. 定义Druid配置文件

(1)创建资源包文件(属性形式)可以叫任意名称,可以放在任意目录下

(2)配置信息

```

驱动程序类名=com。MySQL。CJ。JDBC。驾驶员

URL=JDBC : MySQL ://localhost :3306/it cast

用户名=根

密码=123456

initialSize=5

maxActive=10

maxWait=3000

```

2022-05-03T02:53:23.png

3. 定义工具类

工具类代码:

公共类DuridUtils {

//1.定义成员变量数据源

私有静态数据源ds;

静态{

尝试{

//1.加载配置文件

Properties pro=new Properties();

亲。负载(JDBC utils。班级。getclass loader().getResourceAsStream(' druid。属性’);

//2.获取数据源

ds=druiddatasourcefactory。创建数据源(pro);

} catch (IOException e) {

e。printstacktrace();

} catch(异常e) {

e。printstacktrace();

}

}

/**

* 获取连接

*/

公共静态连接getConnection()引发SQLException {

返回ds。getconnection();

}

/**

* 释放资源

*/

公共静态无效关闭(语句stmt,连接连接){

/* 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包)

2022-05-03T04:15:44.png

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(" ");
    }
}
Link to comment
Share on other sites