简单类型
POJO单个对象和列表
输出单个pojo对象和pojo列表时,mapper映射文件中的resultType的类型是一样的,mapper接口的方法返回值不同。
同样的mapper映射文件,返回单个对象和对象列表时,mapper接口在生成动态代理的时候,会根据返回值的类型,决定调用selectOne方法还是selectList方法。
<select id="findUserListByUserAndClassname" parameterType="edu.ccit.cn.domain.pojo.UserQueryVo" resultType="user">
select * from t_user where classid=(select id from t_class where classname=#{classname}) and username like '%${user.username}%'
</select>
多个对象
<select id="findUserListByMap" parameterType="hashmap" resultType="user">
select * from t_user where username=#{username} and password=#{password}
</select>
Map
如果查询出来的列名和属性名不一致,通过定义一个resultMap将列名和pojo属性名之间作一个映射关系。
1、 定义resultMap
2、使用resultMap作为statement的输出映射类型
<resultMap id="userResultMap" type="user">
<id column="id_" property="id"></id>
<result column="username_" property="username"></result>
<result column="calssid_" property="classid"></result>
</resultMap>
<select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap">
select id id_,username username_,classid classid_ from t_user where id=#{?}
</select>