zoukankan      html  css  js  c++  java
  • 框架学习系列 mybatis mapper映射文件之输出映射

    1: mapper映射文件输出映射(输入类型)

    2:resultType的使用

    3:resultMap的使用

    3:总结&下节预告

    本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第十二篇 mapper映射文件之输出映射

    声明:本文系凯哥Java(www.kaigejava.com)原创,未经允许,禁止转载!

    一: mapper映射文件输出映射(输入类型)

    1.1:mapper.xml文件中那个是输出映射(输出类型)?

    mapper映射文件输出映射(输入类型)

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    上图中的resultType就是输出映射,还有一种是resultMap

    二:resultType的使用

    2.1:resultType使用要求

    ①:使用resultType进行结果映射时候,需要查询出的列名和映射的对象的属性名称一致,才能映射成功

    ②:如果查询的列名和对象的属性名全部不一致,那么映射的对象为空

    ③:如果查询的列名和对象的属性名有一个一致,那么映射的对象不为空,但是只有映射成功的那一个属性才有值

    ④:如果查询的sql的列名有别名,那么这个别名就是和属性映射的列名

    输出类型有哪些?

    简单类型、pojo对象和pojo列表、

    2.2:简单类型的使用

    注意:对简单类型的结果映射也是有要求的,查询的列必须是一列,才能映射为简单类型的

    2.2.1:需求

    在上节复杂pojo对象使用的时候:想模糊查询用户是凯哥的都有哪些?这个需求修改为,查询符合条件的用户总数是多少?

    凯哥喜欢先给出结果,在详细解说。咱就先来看结果,小二,上图啦~

    2.2.2:映射文件

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    2.2.3:mapper接口代码:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    2.2.4:测试代码:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    2.2.5:运行结果:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    2.3:pojo对象和pojo列表

    可以参考入门程序之根据id查询用户信息和根据用户名模糊查询用户列表。这里就不详细解说。

    2.3.1:pojo对象。(根据id查询用户)

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    2.3.2:根据用户名模糊查询用户列表

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    需要注意的:resultType:输出结果所映射的java类型(也就是单条结果所以对应的java类型)

    单条结果数据的数据类型。

    三:resultMap的使用

    3.1:使用要求

    使用resultMap进行结果映射的时候,不需要查询的列名和映射的属性名必须一致,但是需要声明一个resultMap,来对列名和属性名进行映射

    3.2:需求:

    根据id全字段映射。sql语句如下:

    SELECT id , username,birthday,sex address FROM USER WHERE id = 28

    3.3:user-mapper.xml映射文件:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    说明:

    resultMpa:标明开始声明一个resultMap

    type:查询后返回当个pojo对象的类型(全类名或是别名)

    id:resultMap唯一标识

    id:标明是主键的.主键使用该属性

    column:数据库中对应的列名

    property:对应的属性名

    javaType:对应Java类型

    result:非主键属性

    3.4:mapper接口类代码:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    3.5:测试类:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    3.6:运行结果:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    三:总结

    通过本文学习,我们知道mapper输出映射有两种方式

    resultType和resultMap两种

    使用resultType怎么返回简单类型,使用简单类型时候需要注意什么。怎么返回pojo类型和pojo列表

    resulMap的使用中resultMap都有哪些属性?怎么使用resultMap

    下节预告:

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    框架学习系列 mybatis 第十二篇 mapper映射文件之输出映射

    在resultMap 中type和resultType的时候,每次都写全路径是不是很麻烦呢?

    四:parameterType

    在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可。parameterType有基本数据类型和复杂的数据类型配置。

    1.基本数据类型,如输入参数只有一个,其数据类型可以是基本的数据类型,也可以是自己定的类类型。包括int,String,Integer,Date,如下:

     (1)根据id进行相应的删除:<delete id="deleteById" parameterType="Integer">

    (2)添加员工:<insert id="addEmp" parameterType="com.pojo.Employee">

    2.复杂数据类型:包含java实体类,map。

    配置如:

      <select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">  

           select * from Teacher where c_id=#{id} and sex=#{sex} 

      </select>  

    java代码如下:

        Map<String,String> map=new HasMap<String,String>();  

        map.put("id","2");  

        map.put("sex","男");  

        List<Teacher> tList = teacherMapper.selectTeacher(map);   

        for (Teacher entityTemp : tList) {    

        System.out.println(entityTemp.toString()); } 

    另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解

        /**
         * 此处要注意的是,由于该方法需要传入多个参数,在进行Mybatis配置时,
         * 没有办法同时配置多个参数,另外MyBatis还提供了一个使用注解来参入
         * 多个参数的方式。这种方式需要在接口的参数上添加@Param注解。。
         * 注意,以下两种写法是完全相同的。但使用的时候要使用第一种类型
         */
        
        User login(@Param(value="name")String name,@Param(value="password")String password );
    //    User login(String name,String password);

    配置如下:

     <select id="login"  resultType="com.pojo.User">
        select * from us where name=#{name} and password=#{password}
       </select>

  • 相关阅读:
    codevs 1432 总数统计
    codevs3500 快速幂入门题解
    #163. 【清华集训2015】新式计算机
    2989:糖果
    191:钉子和小球
    java 删除所有HTML工具类
    DateTools时间插件
    新的开始
    springBoot---端口,路径数据配置
    springBoot---多个配置文件读取
  • 原文地址:https://www.cnblogs.com/ajing2018/p/10084495.html
Copyright © 2011-2022 走看看