14_输出映射2_resultMap

【resultMap】

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间做一个映射列表。

1.定义resultMap,(在UserMapper.xml文件中)

     <!--
         定义resultMap
         将SELECT id _id,username _username,birthday _birthday,address _address和User类中的属性做一个映射
         type: resultType最终映射的java对象类型,可以使用别名
         id:对resultMap的唯一标示
     -->
     <resultMap type="user" id="userResultMap">
         <!--
             id:表示查询结果集中唯一标识
             column:查询出来的列名
             property:type指定的pojo类型中的属性名
          -->
          <id column="id_" property="id"/>
          <!--
              result:对普通列名称的映射定义
           -->
          <result column="_username" property="username"/>
          <result column="_birthday" property="birthday"/>
          <result column="_address" property="address"/>
     </resultMap>

2.使用resultMap作为statement的输出映射(该案例在UserMap.xml中,后面也不一定在同一个xml文件中,不在同一个文件中是要加namespace)

     <select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap">
         SELECT id _id,username _username,birthday _birthday,address _address from USER WHERE id=#{id}
     </select>

【不要忘了UserMapper接口中对应的方法】

【测试代码】

    @Test
    public void testFindUserByIdResultMap() throws Exception {  

        SqlSession sqlSession =sqlSessionFactory.openSession();

        //创建一个UserMapper对象,Mybatis自动生成mapper代理对象
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

        //调用userMapper的方法
        User user = userMapper.findUserByIdResultMap(3); 

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

【运行结果】

时间: 2024-07-29 15:32:55

14_输出映射2_resultMap的相关文章

mybatis输出映射总结

使用resultType作为输出映射 只有查询出来的列名和pojo中的属性名一致时,才会映射成功, 如果不一致,可以使用resultMap最为输出类型 不管是输出单个对象还是列表(list中包括pojo),在mapper.xml中的resultType中的类型是一样的,不一样的是在接口中方法的返回值是不一样的 输出对个对象 返回值是pojo对象 输出对个对象list 那么返回值是List<pojo> 生成的动态代理对象中是根据mapper方法中的返回值来决定调用selectOne(返回单个对象

13_输出映射1_resultType

输出映射主要有两种:resultType和resultMap [resultType] 可以返回三种类型 pojo对象:例如select * from user where id=? pojo对象列表:例如 select * from user 普通类型: 例如 select count(*) from user 小问题: 使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以被成功加载! 例如,数据表是这样的: UserMapper.xml配置文件这样的(

mybatis入门基础(四)----输入映射和输出映射

阅读目录 一:输入映射 二:输出映射 回到顶部 一:输入映射 通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型. 1.1.传递pojo的包装对象 1.1.1.需求描述 完成用户信息的综合查询,需要传入的查询条件可能很复杂(可能包括用户信息,其它信息,比如,商品,订单等等). 1.1.2.定义包装类型的pojo 针对上边的需求,建议使用自定义的包装类型pojo,在包装类型的pojo中将复杂的查询条件包装进去. 包装查询条件的pojo类User

Mybatis学习(4)输入映射、输出映射、动态sql

一.输入映射: 通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型 1) 传递pojo的包装对象 需求是:完成用户信息的综合查询,传入的查询条件复杂:(包括用户信息.其他信息等); 定义包装类型: 用户扩展类: package com.cy.po; /** *用户的扩展类 * @author chengyu * */ public class UserCustom extends User{ } 视图层面的用户包装类型: 1 package

【Mybatis框架】输出映射-resultType与resultMap

输出映射接下来说说有关Mapper.xml配置文件中查询标签中关于返回值类型resultType与resultMap的一些内容 1.resultType使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功.如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象.只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象. 1.1输出简单类型1.1.1需求用户信息的综合查询列表总数,通过查询总数和上边用户综合查询列表才可以实

mybatis 输入映射和输出映射

开发步骤: 1)映射文件UserMapper,xml中进行配置 2)接口UserMapper中增加方法 3)测试 输入映射: 需求一.:输入包装类型 UserQueryVo中定义Customer类 Customer继承User类 UserQueryVo <span style="font-family:Courier New;font-size:14px;">public class UserQueryVo { private Customer customer; publ

Spring+SpringMVC+MyBatis深入学习及搭建(四)——MyBatis输入映射与输出映射(转发同上)

原地址:http://www.cnblogs.com/shanheyongmu/p/7121556.html 1. 输入映射 通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型. 1.1 #{}与${} #{}实现的是向prepareStatement中的预处理语句设置参数值,sql语句中#{}表示一个占位符即? <select id="findUserById" parameterType="int" r

mybatis 输入、输出映射

一.输入映射 mapper.xml的参数只有一个.可以传参数,基本简单类型,hashmap和javabean (一).Javabean的方法. 需求:通过小说名和作者模糊找书. 1.定义Javabean class  NovelCustom  extends Novel 继承了Novel.一个可以通过什么属性来查询.二.可以在里面加属性.如加上章节名来查询.(表tb_chacter和类Chacter,表中tb_novel_id外键), 或者,将Novel注入到NovelCustom.//priv

MyBatis总结之输入和输出映射

我们知道mybatis中输入映射和输出映射可以是基本数据类型.hashmap或者pojo的包装类型,这里主要来总结一下pojo包装类型的使用,因为这个在开发中比较常用. 1. 输入映射 输入映射,是在映射文件中通过parameterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类型.假设现在有个比较复杂的查询需求:完成用户信息的综合查询,需要传入查询条件很复杂(可能包括用户信息.其它信息,比如商品.订单的),那么我们单纯的传入一个User就不行了,所以首先我们得根