如何使用jdbcTemplate查询返回自定义对象集合

  介绍

小编给大家分享一下如何使用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查询返回自定义对象集合”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

如何使用jdbcTemplate查询返回自定义对象集合