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

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>

在这里需要注意的是传入的数据类型是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,千万不要写重复或者写错,否则映射不到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值