上一篇算是把JdbcDaoSupport的使用演示了一下,这篇主要是演示MappingSqlQuery、SqlUpdate、SqlFunction的使用以及Spring的事务管理。
一、MappingSqlQuery的使用
在上一篇获取所有User的方法QueryAllUser()中,使用getJdbcTemplate().queryForList()返回的是List<Map<String,Object>>类型,需要遍历转换成Java对象,那问题来了,查询的不止这一个方法,可能以后会有条件查询的方法,那每次都要把从数据库返回的List<Map<String,Object>>类型的List转一遍,当然也可以专门写一个转换的方法,这样每次传List<Map<String,Object>>类型的参数,然后返回List<User>类型的值。其实还有一种方式,就是使用MappingSqlQuery。MappingSqlQuery是一个抽象类,需要实现它的方法mapRow()。下面的代码就是定义了类UserMappingSqlQuery,继承了抽象类MappingSqlQuery,实现了它的mapRow()方法。
package Cuiyw.Spring.Dao; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.object.MappingSqlQuery; import Cuiyw.Spring.Model.User; public class UserMappingSqlQuery extends MappingSqlQuery { @Override protected Object mapRow(ResultSet rs, int rowNum) throws SQLException { // TODO Auto-generated method stub User user=new User(); user.setUserId((Integer)rs.getInt("id")); user.setName((String)rs.getString("name")); user.setMoney((Float)rs.getFloat("money")); return user; } }