使用jdbcTemplate查询返回自定义对象集合
来源:互联网 发布:ubuntu cab软件 编辑:程序博客网 时间:2024/06/05 17:08
1、在UserInfo.java中添加一个Map转换为UserInfo的方法
public static UserInfo toObject(Map map) {UserInfo userInfo = new UserInfo();userInfo.setId((Integer) map.get(id));userInfo.setUname((String) map.get(uname));userInfo.setUnumber((Integer) map.get(unumber));userInfo.setuRegisterTime((Date) map.get(uregister_time));return userInfo;}public static List toObject(List> lists){List userInfos = new ArrayList();for (Map map : lists) {UserInfo userInfo = UserInfo.toObject(map);if (userInfo != null) {userInfos.add(userInfo);}}return userInfos;}
dao层实现:
public List findAll() {String sql = SELECT * FROM user_info;List<Map<String,Object>> lists = jdbcTemplate.queryForList(sq);return UserInfo.toObject(lists);}
总结:这种方法能够实现,但是速度相比很慢。
2、使用jdbcTemplate.query(sql,RowMapper)方式实现:
dao层实现
jdbcTemplate.query(sql, new RowMapper<UserInfo>() {@Overridepublic UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException {UserInfo userInfo = new UserInfo();userInfo.setUname(rs.getString("uname"));userInfo.setUnumber(rs.getInt("unumber"));userInfo.setuRegisterTime(rs.getDate("uregister_time"));return userInfo;}});
总结:在其他查询方法中无法重用。
3、 使用RowMapper实现接口方式,覆盖mapRow方法:
public class UserInfo implements RowMapper, Serializable{@Overridepublic UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException {UserInfo userInfo = new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUname(rs.getString(uname));userInfo.setUnumber(rs.getInt(unumber));userInfo.setuRegisterTime(rs.getDate(uregister_time));return userInfo;}}
dao层实现:
public UserInfo getById(Integer id) {String sql = SELECT * FROM user_info WHERE id = ?;UserInfo userInfo = jdbcTemplate.queryForObject(sql, new UserInfo(), new Object[] { id });return userInfo;}public List findAll() {String sql = SELECT * FROM user_info;List userInfos = jdbcTemplate.query(sql, new UserInfo());return userInfos;}
4、dao层使用
jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<UserInfo>(Qsfymxb.class));
Spring 提供了一个便利的RowMapper实现-----BeanPropertyRowMapper
它可自动将一行数据映射到指定类的实例中 它首先将这个类实例化,然后通过名称匹配的方式,映射到属性中去。
例如:属性名称(vehicleNo)匹配到同名列或带下划线的同名列(VEHICLE_NO)。如果某个属性不匹配则返回属性值为Null
0 0
- 使用jdbcTemplate查询返回自定义对象集合
- 使用jdbcTemplate查询返回自定义对象集合
- jdbcTemplate查询返回对象或集合
- 通过jdbcTemplate如何返回自定义的对象集合,以及在java中如何遍历这个集合
- Hibernate高级使用:查询返回自定义对象
- SpringMVC查询返回集合,不能自定义字段对象的解决方法
- Hibernate查询返回自定义对象
- Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作 —— 查询表,返回结果为对象的list集合
- jdbcTemplate 实现查询对象
- hibernate多表查询返回的集合映射成自定义对象
- jdbcTemplate 实现查询返回list
- 查询返回的是对象集合
- jdbc查询数据库返回实体对象集合
- JdbcTemplate查询结果绑定对象
- jdbcTemplate返回自定义Bean的列表
- JdbcTemplate使用SQL语句查询
- 使用jdbcTemplate查询的三种回调
- 使用jdbcTemplate查询的三种回调
- [nginx源码分析]配置合并
- Android:LayoutInflater的使用
- 4.Magento的模型和ORM基础
- 剑指offer 面试题25—二叉树中和为某一值的路径
- 【iOS链接】——网络以及数据持久化存储
- 使用jdbcTemplate查询返回自定义对象集合
- NT_iOS笔记—Git笔记
- Head First Servlets and JSP 一
- Daloradius添加汉化文件说明
- [LeetCode] Course Schedule
- 剑侠3d任务系统开发笔记(一)之任务字段的确定
- 【Android】Eclipse自动编译NDK/JNI的三种方法
- Course Schedule
- Android : Gesture Builder:自定义手势文件