首先定义一个用户的返回集重点在后面两个属性的配置,注解已经标注了这里不多作说明
<!-- 定义用户返回集 --> <resultMap type="map" id="userResult"> <result property="id" column="id" /> <result property="name" column="name" /> <!-- one to one 一个用户对应一个详情 --> <association property="userDetail" column="id" javaType="map" select="getUserDetail" /> <!-- one to many 一个用户对应多个设备 --> <collection property="deviceList" column="id" javaType="list" select="getUserDevice" /> </resultMap>
这里是用户详情和用户设备的返回集 很普通
<!-- 用户详情返回集 --> <resultMap type="map" id="userDetailResult"> <result property="id" column="id" /> <result property="name" column="name" /> <result property="birthday" column="birthday" /> <result property="age" column="age" /> <result property="homeAddress" column="homeAddress" /> <result property="IDCard" column="IDCard" /> </resultMap> <!-- 用户设备返回集 --> <resultMap type="map" id="deviceResult"> <result property="id" column="id" /> <result property="name" column="name" /> <result property="sn" column="sn" /> </resultMap>
这里是几个查询的配置
<!-- 查询单个用户 --> <select id="queryOne" parameterType="map" resultMap="userResult"> SELECT id,name,registrationID FROM SYS_USER WHERE name=#{name} AND password=#{password} </select> <!-- 查询用户详情 --> <select id="getUserDetail" parameterType="map" resultMap="userDetailResult"> SELECT id,name,birthday,age,homeAddress,IDCard FROM SYS_USER_DETAIL WHERE userID=#{id} </select> <!-- 查询用户设备 --> <select id="getUserDevice" parameterType="map" resultMap="deviceResult"> SELECT id,name,sn FROM ACS_DEVICE WHERE adminID=#{id} </select>
{ "id":1, "registrationID":"011ca8068e2", "name":"admin", "userDetail":{"id":1,"birthday":"2015-06-09","homeAddress":"重庆市","age":0,"name":"管理员","IDCard":"500231199009010058"}, "deviceList":[{"id":1,"sn":"2059A0FD4DED","name":"test"}, {"id":3,"sn":"2059A0FD4E0B","name":"剧组"}, {"id":4,"sn":"2059A0FD4DE","name":"xy"}] }