您的位置:首页 > 其它

初识Mybatis(五)之输入映射和输出映射

2018-01-16 10:52 411 查看

MyBatis的映射

在Mapper.xml配置文件中的配置:

<select id="selectUserById" resultType="User" parameterType="java.lang.Integer">
select * from user where id = #{v}
</select>


以这个最简单的例子来看select 元素中属性有:

resultType, parameterType这两个属性,分别对应sql语句中的返回值类型和传入参数类型

MyBatis的输入映射

parameterType:此处要求传入的是Java中类型的全包名

parameterType可以有以下几种类型参数:

1.POJO类型

2.Java中内置的基本数据类型和八大包装类型

3.自定义包装类型

前两种都在前面的文章中提到,本文只提到自定义包装类型:所谓包装类型,就是将POJO类型包装在另外一个类中作为另外一个类的属性

自定义包装类:

package com.tangbaobao.mybits.pojo;

import java.io.Serializable;
import java.util.List;

/**
* @author 唐学俊
* @version 2018年1月15日上午11:04:19 实现序列化接口保证在RPC远程调用中对象的正确性
*/

public class QueryVo implements Serializable {

// 包装User

private User user;

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}
}


UserMapper.xml中的配置

<!-- 用包装类查询用户名查询用户 -->
<select id="findQueryVoUserName" resultType="com.tangbaobao.mybits.pojo.User"
parameterType="com.tangbaobao.mybits.pojo.QueryVo">
select * from user
where username like
"%"#{user.username}"%"
</select>

4000
[/code]

在这里需要注意的是传入的数据类型是Query,但是需要的username在user类下

所以可以理解的取值顺序为Query类->user属性–>User类->username属性

包装pojo的好处:某些业务需要组装的数据或者实体,包装pojo就非常简单

Mybatis输出映射

输出映射分为:

1.POJO类型映射

2.java内置数据类型映射

3.包装类型映射

前几篇文章的例子都是数据库的字段和PoJo相同,但是在某些情况下,数据库字段和Pojo类字段如果不一样就不能正的映射了,这时候,Mybatis为我们提供了数据库字段和Pojo字段的映射Map

<resultMap type="com.tangbaobao.mybits.pojo.User" id="user">
<id/ column = "数据库字段" property ="POJO类属性字段"><!--主键-->
<result  column = "数据库字段" property ="POJO类属性字段"/><!--除了主键的其他字段映射-->
</resultMap>

<select id="findQueryVoUserName" resultMap="user"
parameterType="QueryVo">
select * from user
where username like
"%"#{user.username}"%"
</select>


在resultMap中需要注意的是引用的resut值是要映射Result的id,千万不要写重复或者写错,否则映射不到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: