ibatis入门尝试2
List查询
之前我们都是对单个对象进行查询的,这次我们用来进行查询List。
在User.xml中添加一段select配置,通过之前的resultMap返回对象
<select id="getUserList" resultMap="GetUser">select * from users</select>
List list = sqlMap.queryForList("getUserList");System.out.println(list.size());for(int i =0;i<list.size();i++){User user = (User)list.get(i);System.out.println(user.getName()+" "+user.getEmail());}<select id= "getUserList2" resultMap="GetUser" parametername="code">Map map = new HashMap();map.put("name", "0431.la");map.put("email", "test@9ui.com");List list = sqlMap.queryForList("getUserList2", map);System.out.println(list.size());<select id="getUserCount" resultname="code">int i = (Integer)sqlMap.queryForObject("getUserCount");System.out.println(i);public class UserCount {private int count;public int getCount() {return count;}public void setCount(int count) {this.count = count;}}<resultMap id="UserCount1"><result property="count" column="count"/></resultMap><select id="getUserCount" resultMap="UserCount1">select count(*) as count from t_user</select>
UserCount uc = (UserCount) sqlMap.queryForObject("getUserCount");System.out.println(uc.getCount());<select id="getUserForDynamic" resultMap="GetUser">select * from users<dynamic prepend="where"><isEqual property="name" compareValue="llying"> u_email=#email#</isEqual></dynamic></select>
Map map = new HashMap();map.put("name", "llying");map.put("email", "test@0431.la");List list;list = sqlMap.queryForList("getUserForDynamic",map);System.out.println(list.size());<select id="getUserForDynamic" resultMap="GetUser">select * from t_user<dynamic prepend="where"><isNotEqual property="name" compareValue="llying" prepend="and">u_age in <iterate property="ages" open="(" close=")" conjunction=",">#ages[]#</iterate></isNotEqual><isNotEmpty property="name" prepend="and">u_name=#name#</isNotEmpty></dynamic></select>int[] ages = {2,12};Map map = new HashMap();map.put("name", "lly");map.put("ages", ages);List list;list = sqlMap.queryForList("getUserForDynamic",map);