JdbcTemplete基本使用

在JdbcTemplate类中执行SQL语句的方法大致分为3类:

方法 功能说明 要求
execute() 用于执行DDL语句,如:建表 了解
update() 用于执行DML语句,实现对数据库表的增删改操作 掌握
queryXxx() 用于执行DQL语句,实现对数据库表的各种查询的操作 一定掌握
  • execute()方法:
    • 参数:sql语句(建表)
1
2
3
4
5
6
7
String sql = "create table tb_user("
+" id int primary key auto_increment,"
+"name varchar(32) not null,"
+"age int not null"
+");";

jdbcTemplate.execute(sql)
  • update()语句

    • 参数:sql语句、args(用来替换占位符的真实值,是可变的参数)

      1
      2
      String sql = "insert into table tb_user(name, age) value (?, ?);"
      jdbcTemplate.update(sql, "hh", 21);
    • 总结:

      1. JdbcTemplate的update方法方法用于执行DML语句[^1]。
      2. 可以在SQL语句中使用?占位符,同时要在在update方法的args可变参数中传入对应的参数。
  • QueryXxx()语句

    • QueryForMap(), 查询一条记录封装成Map, 适合于含有任意key的JSON,没有相应的构造类
      • 参数: sql语句,args
        1
        Map<String, Object> map = jdbcTemplate.queryForMap(“select * from tb_userwhere id=?”, 2);
    • queryForObject(), 查询一个数据封装成一个JavaBean对象
      • 参数: queryForObject(String sql,RowMapper rowMapper,Object…args)
      • SpringJDBC提供一个接口:RowMapper的实现类BeanPropertyRowMapper,使用起来更方便。值需要在构造方法中传入tb_user.class类对象即可,它会自动封装所有同名属性。
        1
        jdbcTemplate.queryForObject("select * from tb_user", new BeanPropertyRowMapper(User.class));
  • query(),查询多条记录封装成List

    • 参数:同上个方法
      1
      List<User> users = jdbcTemplate.query("select * from tb_user", new BeanPropertyRowMapper<>(User.class));
  • 当然,上述只是一些常用方法,还有queryForInt()等方法,大家可以自己去了解尝试。

[^1]: DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 此外,还有DQL(Data Query Language) 简称,数据库查询语言, 关键字为SELECT。