输入映射和输出映射
parameterType(输入类型)
- 传递简单类型
- 传递pojo对象(Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称)
- 传递pojo包装对象
pojo包装对象:
- 新建包装pojo对象QueryVo
/**
* 包装pojo
* @author Steven
*/
public class QueryVo {
//用户对象
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
- 映射文件与sql
<!-- 1、resultType:如果要返回数据集合,只需设定为每一个元素的数据类型
2、 包装的pojo取值通过 "."来获取
-->
<select id="getUserByQueryVo" parameterType="queryvo" resultType="pojo.User">
<!-- SELECT * FROM USER WHERE username LIKE #{name} -->
SELECT * FROM USER WHERE username LIKE '%${user.username}%'
</select>
- 新增接口方法
- 增加测试方法,完成测试
resultType(输出类型)
- 输出简单类型
- 输出pojo对象
- 输出pojo列表
- 输出resultMap
resultMap
演示基于完成订单列表的查询,由user_id字段与pojo属性不一致时引出的resultMap。
例如:在表中的id字段名字为userId
但是在pojo属性中的id字段为user_id,两个字段不对应,所以读出Null,此时我们要用resultMap将其映射
<!-- resultMap入门
type:映射成的pojo类型
id:resultMap唯一标识
-->
<resultMap type="order" id="orderMap">
<!-- id标签用于绑定主键 -->
<!-- <id property="id" column="id"/> -->
<!-- 使用result绑定普通字段 -->
<result property="userId" column="user_id"/>
<result property="number" column="number"/>
<result property="createtime" column="createtime"/>
<result property="note" column="note"/>
</resultMap>
<!-- 使用resultMap -->
<select id="getOrderListResultMap" resultMap="orderMap">
SELECT * FROM `order`
</select>
其它步骤跟前面类似,添加接口方法与测试方法,完成测试。