JDBCTemplate使用详解
「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。
前言
大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍JDBCTemplate的基本概念是具体使用,以及我们应该关注的几个方法。
1. 基本概念
JDBCTemplate对象是Spring框架提供的封装后的JDBC。使用JDBCTemplate可以帮助我们进行资源的连接和关闭等等,我们只需要提供SQL语句,对最后结果进行处理即可,相比于之前减少了我们大量的的操作,同时也减少了我们出错的概率。
2. 具体使用
2.1 创建JDBCTemplate
-
下载jar包并导入。
https://jar-download.com/artifacts/org.springframework/spring-jdbc
- 获取JdbcTemplate对象
public class JdbcTemplateDemo01 {
public static void main(String[] args) {
//获取数据JdbcTemplate对象
JdbcTemplate JdbcTemplate = new JdbcTemplate(JdbcUtils.getDataSource());
//设置sql语句
String sql = "update dept set name='市场部' where id=?";
//执行sql语句
int count = JdbcTemplate.update(sql, 1);
//处理结果
System.out.println(count);
}
}
JdbcUtils.getDataSource()这里获取的是DataSource对象(数据库连接池),如果不是太了解,欢迎点击传送门(【深入浅出谈数据库连接池】);
2.2 JDBCTemplate的方法
-
update(): 执行增删查改操作。
//修改数据 String sql = "update dept set name='开发部' where id = ?"; int count = jdbcTemplate.update(sql, 1); //添加数据 String sql = "insert into dept values(null,?)"; int i = jdbcTemplate.update(sql, "研发部"); //删除数据 String sql = "delete from dept where id=?"; int i = jdbcTemplate.update(sql, 5);
update的第一个参数是sql语句,后面的参数对应sql语句中的?占位符。下面的方法也是一样。
-
queryForList(): 查询结果使用List集合存储。
String sql = "select * from dept"; List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
每个字段的名称作为key,值作为value,整体作为一个map对象,list集合中存放的就是一个个的map对象。
-
queryForMap(): 查询结果使用Map集合存储。
String sql = "select * from dept where id=?"; Map<String, Object> stringObjectMap = jdbcTemplate.queryForMap(sql, 1);
每个字段的名称作为key,值作为value,整体作为一个map对象。
-
query(): 查询结果封装为JavaBean对象。
String sql = "select * from dept"; List<Dept> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Dept>(Dept.class));
第一个参数是SQL语句,第二个参数是RowMapper类型的对象。Dept对应数据库dept表的实体类(JavaBean)。
-
queryForObject(): 查询结果封装为Object对象。
String sql = "select count(id) from dept"; int i = jdbcTemplate.queryForObject(sql,Integer.class);
一般执行聚合函数时使用该方法。
小结
以上就是关于加强版的JDBCUtil,可以提供给我们很多方便,常和数据库连接池一起使用。希望以上内容对读者有所帮助,如有不正之处,欢迎留言指正。
转载自:https://juejin.cn/post/7058984469184643080