jdbcTemplate学习(三)

上一节讲的查询方法,映射结果集为对象时,需要一个个set属性值,比较麻烦,下面讲解使用BeanPropertyRowMapper来将查询结果简单映射成对象:

使用Spring的JdbcTemplate或者NamedParameterJdbcTemplate查询数据库,获取结果,数据库表字段和实体类自动对应,可以使用BeanPropertyRowMapper

 

注意:

  自动绑定,需要列名称和Java实体类名字一致,如:属性名 “userName” 可以匹配数据库中的列字段(这里说的列字段是sql执行结果的列名,也就是如果有别名就用别名,(Oracle默认列名大写)) "USERNAME" 或 “user_name”。这样,我们就不需要一个个手动绑定了,大大提高了开发效率。

下面讲解BeanPropertyRowMapper用法:

BeanPropertyRowMapper<T>     implements RowMapper<T>这个类是实现了RowMapper接口的,所以之前讲的查询中,能用到RowMapper回调类的都可以用BeanPropertyRowMapper来将结果直接映射为实体类。

public List<UserEntity> findUser(UserEntity user) {  
        List<UserEntity> userList = jdbcTemplate.query(SEL_BY_USERNAME_PWD,  
                new Object[] { user.getUserName(), user.getPwd() },  
                new BeanPropertyRowMapper<UserEntity>(UserEntity.class));  
        return userList;  
    }  

正如上面,直接利用BeanPropertyRowMapper的构造方法传递一个需要映射的类的class对象进去即可实现,当然必须满足之前说的要求:

1.属性名“userName”要按如下规则匹配sql结果列:结果列要是"user_name"(大小写都行),因为BeanPropertyRowMapper的中会将结果列都转为小写去和对象中set属性对应;

2.属性名“user”这对应结果列为“USER”(大小写都行),理由同上;

 

posted @ 2017-11-20 10:15  迷走神经  阅读(669)  评论(0编辑  收藏  举报