JdbcTemplate

Springr JdbcTemplate是对JDBC的轻度封闭,使用还是比较方便,在Spring中就自带
主要方法有三类

execute() 所有sql都可以执行,要拼接完整sql,一般不用
update()   主要用于插入、更新、删除
query***()  查询

query***这类方法主要有下面这三类大量重载
1、queryForObject(sql,Integer.class)
查询返回一个对象,不过只能是(基本类型的包装类型如 Integer),想要返回自定义类型,要使用new RowMapper来进行手动的映射

//指定基本类型包装类型
String name = jdbcTemplate.queryForObject("select name from user where id = 1", String.class);
        
//自定义类型手动映射
User user = jdbcTemplate.queryForObject("select * from user where id =1", new RowMapper<Student>() {
    @Override
    public Student mapRow(ResultSet rs, int i) throws SQLException {
	    User user = new User();
	    if (rs.next()) {
	        user.setName(rs.getString("name"));
	        user.setAge(rs.getInt("age"));
	    }
	    return user;
});

2、queryForList(sql,String.class)
查询返回一个List类型,List中的类型也只能时基本类型包装类,如果不指定类型会返回List<Map<String,Object>> 类型的数据,这个方法竟然只支持这两种方式,不能自定义类型

//指定基本类型包装类型
List<String> List = jdbcTemplate.queryForList("select name from user", String.class);

//不指定类型返回List<Map<String,Object>>
List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from user");

3、query()
这个方法支持自动映射,使用BeanPropertyRowMapper<>(User.class)不过返回的是List类型的,要想返回单个对象就是使用new ResultSetExtractor()这种方式来实现手动映射

//自动映射
List<User> list = jdbcTemplate.query("select * from user", new BeanPropertyRowMapper<>(User.class));

//手动映射
User user = jdbcTemplate.query("select * from user", (rs) -> {
    User user = new User();
    if (rs.next()) {
        user.setName(rs.getString("name"));
        user.setAge(rs.getInt("age"));
    }
    return user;
});

Spring JdbcTemplate是对JDBC的轻度封闭,没有那么像mybatis那样多的映射实现,不过也能满足所有查询需要,因为轻量所有性能还是相对高的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值