Spring10---spring整合JDBC_02_基于RowMapper的查询

来源:互联网 发布:古生物学与地层学知乎 编辑:程序博客网 时间:2024/06/05 21:01

基于RowMapper的查询

这里写图片描述

改为queryForObject

  第一个参数为sql

  第二个参数为查询条件的参数,

  第三个参数为RowMapper,这个对象可以完成一个对象和数据库字段的对应, 实现RowMapper,实现mapRow()方法,

这里写图片描述

测试

这里写图片描述

2、List查询,使用query,

这里写图片描述

测试

这里写图片描述

三、对比上面两个例子, 他们有一个共同点, RowMapper的实现相同,

new RowMapper<User>() {            public User mapRow(ResultSet rs, int rowNum) throws SQLException {                Group g = new Group();                g.setId(rs.getInt("gid"));                g.setGroupName(rs.getString("groupname"));                User u = new User();                u.setId(rs.getInt("id"));                u.setUsername(rs.getString("username"));                u.setPassword(rs.getString("password"));                u.setNickname(rs.getString("nickname"));                u.setGroup(g);                return u;            }

我们可以将这段代码提取出来 , 作为一个静态内部类

这里写图片描述

在官网中的案例就是这么做的
这里写图片描述

查询的结果为记录条数count(*)

    public void query() {        String sql = "select count(*) from t_user";         int rowNum = jdbcTemplate.queryForObject(sql, null, Integer.class);        System.out.println("获取" + rowNum + "条");    }

获取某个字段, 返回的是一个列表

    public void query() {        String sql = "select username  from t_user";         List<String> names = jdbcTemplate.queryForList(sql, String.class);        for (String name : names) {            System.out.println(name);        }    }

Batch operations with a List of objects,

NamedParameterJdbcTemplate

这里写图片描述

原创粉丝点击