ibatis查询SQL语句返回一个对象,此对象包含一个List属性
Posted 一个人的北京S
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ibatis查询SQL语句返回一个对象,此对象包含一个List属性相关的知识,希望对你有一定的参考价值。
可能标题说的不是很明白,具体其实就是:
我需要查询一个用户,但是这个用户拥有多张试卷,所以我将试卷这个对象,作为User对象的一个属性,这个属性为List类型。这样我在SQL查询时直接查询user表返回user对象,此user对象包含一个属性(List<Test>多张试卷)。
java实体类对应关系:
public class Test{ private Integer userID; // 主键ID private String username; // 姓名 private String idCard; // 身份证号 private Integer sex; //性别 private String mobilePhone; // 手机号 private List<Test> propertyList; //List属性 }
ibatis对应XML文件查询代码:
<resultMap id="List_result" class="com.ceshi.user.domain.User"> <result property="userID" column="userID"/> <result property="idCard" column="idCard"/> <result property="username" column="username"/> <result property="mobilePhone" column="mobilePhone"/> <result property="propertyList" column="{userID=userID}" select="getpropertyList"/> </resultMap> <select id="getpropertyList" parameterClass="HashMap" resultClass="com.ceshi.user.domain.User"> SELECT userID ,paperName, GROUP_CONCAT(courseRecomm SEPARATOR \',\') courseRecomm FROM test WHERE userID = #userID# GROUP BY userID,paperName </select> <select id="getList" parameterClass="com.ceshi.user.domain.User" resultMap="List_result"> SELECT a.userID, a.idCard, a.username, CASE a.sex WHEN \'1\' THEN \'女\' ELSE \'男\' END AS sexName, a.mobilePhone, FROM user a <dynamic prepend="WHERE"> <isNotNull prepend="AND" property="userID"> a.userID=#userID# </isNotNull> <isNotNull prepend="AND " property="username"> a.username like\'%$username$%\'</isNotNull> <isNotNull prepend="AND" property="idCard"> a.idCard=#idCard# </isNotNull> </dynamic> ORDER BY a.userID DESC </select>
简单来张图说明一下;
查问卷表拼接用户结果是这样的:同一个人对应多张试卷,查询试卷表结果。
但是我只想查用户表,也返回用户对应的试卷,也就是这样:
记录一下,虽然简单。
以上是关于ibatis查询SQL语句返回一个对象,此对象包含一个List属性的主要内容,如果未能解决你的问题,请参考以下文章
在DAO的查询操作里,数据库查询到记录,sql语句也成功执行,但是返回的对象是null