JdbcTemplate常用API举例与总结

前言

最近在迭代一个12年之久的老项目,所用技术为JdbcTemplate,故将JdbcTemplate常用API总结一下,以加深印象,提高工作效率!

正文

首先,使用需要在pom.xml中引入依赖

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.3.23.RELEASE</version>
   </dependency>

3种类型的方法

1.DDL语句(建表)

execute

execute方法主要用于建表相关,平常使用较少.

 String sql = "create table test (id integer, name varchar(100))";
        jdbcTemplate.execute(sql);

2.DML语句(表的增删改)

DML语句返回结果:影响的行数

insert

String sql = "INSERT INTO student (id,name)  VALUES(1,'张三')";
       int result = jdbcTemplate.update(sql);
        System.out.println("新增行数为 = " + result);

update

   String sql = "update student set name='李四'  where id =? ";
        int result = jdbcTemplate.update(sql, 1);
        System.out.println("修改行数为 = " + result);

delete

    String sql = "delete from student where id =?";
       int result = jdbcTemplate.update(sql, 1);
       System.out.println("删除行数为 = " + result);

3.DQL语句(表的查询)

query

通用的查询方法,有多个同名方法的重载,使用BeanPropertyRowMapper做映射将返回对象封装成List。

   String sql = "select * from student";
        List<Student> students = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Student.class));
        for (Student student : students) {
            System.out.println(student);
        }

queryForObject

返回查询只有单一对象的结果,这个单一结果应该是简单的数据类型,如:Integer.class、Long.class、String.class,不能直接封装成JavaBean对象。
可以用于聚合函数的查询结果。

  String sql = "select name from student where id=?";
       String result = jdbcTemplate.queryForObject(sql,String.class,1);
        System.out.println("姓名为: " + result);

queryForMap

返回Map<String,Object>的查询结果,其中键是列名,值是表中对应的记录。用于查询结果只有1条记录的情况。如果结果集返回多条记录会出现异常。

 String sql = "select * from student where id=?";
        Map<String, Object> result = jdbcTemplate.queryForMap(sql,2);
        System.out.println("id 为2的学生为:" + result);

queryForList

返回多条记录的查询结果,封装成一个List集合
默认List集合中的每个元素是Map对象,即List<Map<String,Object>>
如果要封装成List对象,请使用query()方法。

 String sql = "select * from student";
        List<Map<String,Object>>result = jdbcTemplate.queryForList(sql);
         for (Map<String, Object> stringObjectMap : result) {
            System.out.println("学生为: " + stringObjectMap);
        }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值