likes
comments
collection
share

JDBCTemplate使用详解

作者站长头像
站长
· 阅读数 12

「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」。

前言

大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

本文主要介绍JDBCTemplate的基本概念是具体使用,以及我们应该关注的几个方法。

1. 基本概念

JDBCTemplate对象是Spring框架提供的封装后的JDBC。使用JDBCTemplate可以帮助我们进行资源的连接和关闭等等,我们只需要提供SQL语句,对最后结果进行处理即可,相比于之前减少了我们大量的的操作,同时也减少了我们出错的概率。

2. 具体使用

2.1 创建JDBCTemplate

  1. 下载jar包并导入。

    https://jar-download.com/artifacts/org.springframework/spring-jdbc
    

JDBCTemplate使用详解

  1. 获取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的方法

  1. 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语句中的?占位符。下面的方法也是一样。

  2. queryForList(): 查询结果使用List集合存储。

    String sql = "select * from dept";
    List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
    

    每个字段的名称作为key,值作为value,整体作为一个map对象,list集合中存放的就是一个个的map对象。

    JDBCTemplate使用详解

  3. queryForMap(): 查询结果使用Map集合存储。

    String sql = "select * from dept where id=?";
    Map<String, Object> stringObjectMap = jdbcTemplate.queryForMap(sql, 1);
    

    每个字段的名称作为key,值作为value,整体作为一个map对象。

  4. query(): 查询结果封装为JavaBean对象。

    String sql = "select * from dept";
    List<Dept> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Dept>(Dept.class));
    

    第一个参数是SQL语句,第二个参数是RowMapper类型的对象。Dept对应数据库dept表的实体类(JavaBean)。

  5. queryForObject(): 查询结果封装为Object对象。

    String sql = "select count(id) from dept";
    int i = jdbcTemplate.queryForObject(sql,Integer.class);
    

    一般执行聚合函数时使用该方法。

小结

以上就是关于加强版的JDBCUtil,可以提供给我们很多方便,常和数据库连接池一起使用。希望以上内容对读者有所帮助,如有不正之处,欢迎留言指正。