介绍
小编给大家分享一下如何使用jdbcTemplate查询返回自定义对象集合,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
1,在<代码>用户信息。java代码>中添加一个地图转换为用户信息的方法
public static UserInfo toObject (Map 地图),{ UserInfo UserInfo =, new 用户信息(); userInfo.setId((整数),map.get (id)); userInfo.setUname((字符串),map.get (uname)); userInfo.setUnumber((整数),map.get (unumber)); userInfo.setuRegisterTime(日期),map.get (uregister_time)); return 用户信息; } public static  List toObject (List>,列表){ List userInfos =, new ArrayList (); for (Map Map :列表),{ UserInfo UserInfo =, UserInfo.toObject(地图); if (userInfo !=, null), { userInfos.add(用户信息); } } return 用户信息; }
dao层实现:
public List findAll (), {, String 才能;sql =, SELECT *,得到user_info;, List<才能;Map<字符串,Object>祝辞,lists =, jdbcTemplate.queryForList(平方),, return 才能UserInfo.toObject(列表),, }
总结:这种方法能够实现,但是速度相比很慢。
2,使用<代码> jdbcTemplate。查询(sql, RowMapper) 代码>方式实现:
dao层实现
jdbcTemplate.query (sql, new RowMapper(), {, @Override 才能; public 才能;UserInfo  mapRow (ResultSet , rs, int rowNum), throws SQLException {, ,,,UserInfo UserInfo =, new 用户信息(),, ,,,userInfo.setUname (rs.getString (“uname")),, ,,,userInfo.setUnumber (rs.getInt (“unumber")),, ,,,userInfo.setuRegisterTime (rs.getDate (“uregister_time")),, ,,,return 用户信息,, ,,}, });
总结:在其他查询方法中无法重用。
3,使用RowMapper实现接口方式,覆盖mapRow方法:
public class UserInfo implements RowMapper,可序列化的{, @Override 才能; public 才能;UserInfo  mapRow (ResultSet , rs, int rowNum), throws SQLException {, ,,,UserInfo UserInfo =, new 用户信息(),, ,,,userInfo.setId (rs.getInt (id),, ,,,userInfo.setUname (rs.getString (uname)),, ,,,userInfo.setUnumber (rs.getInt (unumber)),, ,,,userInfo.setuRegisterTime (rs.getDate (uregister_time)),, ,,,return 用户信息,, ,,}, }
dao层实现:
public UserInfo getById (Integer id), {, String 才能;sql =, SELECT *,得到user_info WHERE id ,=, ?,, UserInfo 才能;UserInfo =, jdbcTemplate.queryForObject (sql, new 用户信息(),,new 对象[],{,id }),, ,,return 用户信息; }, , public List  findAll (), {, String 才能;sql =, SELECT *,得到user_info;, List 才能;userInfos =, jdbcTemplate.query (sql, new 用户信息()),, ,,return 用户信息; }
4, dao层使用
jdbcTemplate.query (sql.toString (),, new BeanPropertyRowMapper(Qsfymxb.class));
春提供了一个便利的RowMapper实现——-BeanPropertyRowMapper
它可自动将一行数据映射到指定类的实例中它首先将这个类实例化,然后通过名称匹配的方式,映射到属性中去。
例如:属性名称(vehicleNo)匹配到同名列或带下划线的同名列(VEHICLE_NO)。如果某个属性不匹配则返回属性值为Null
以上是“如何使用jdbcTemplate查询返回自定义对象集合”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!