博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis系列-07-输出映射
阅读量:4993 次
发布时间:2019-06-12

本文共 2590 字,大约阅读时间需要 8 分钟。

7.1     resultType

  使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

  如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。

  只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。

7.1.1     输出简单类型

7.1.1.1              需求

  用户信息的综合查询列表总数,通过查询总数和上边用户综合查询列表才可以实现分页。

7.1.1.2              mapper.xml

7.1.1.3              mapper.java

//用户信息综合查询总数public int findUserCount(UserQueryVo userQueryVo);

7.1.1.4              测试代码

  @Test    public void testFindUserCount(){        SqlSession sqlSession = sqlSessionFactory.openSession();        //创建UserMapper对象,mybatis自动生成mapper代理对象        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);        //创建包装对象,设置查询条件        UserQueryVo userQueryVo = new UserQueryVo();        User user = new User();        user.setSex("1");        user.setUsername("张");        userQueryVo.setUserCustom(user);        //调用userMapper的方法        int count = userMapper.findUserCount(userQueryVo);        System.out.println(count);}

7.1.1.5              小结

  查询出来的结果集只有一行且一列,可以使用简单类型进行输出映射。

7.1.2     输出pojo对象和pojo列表

  不管是输出的pojo单个对象还是一个列表(list中包括pojo),在mapper.xml中resultType指定的类型是一样的。

  在mapper.java指定的方法返回值类型不一样:

   1、输出单个pojo对象,方法返回值是单个对象类型

//根据id查询用户信息  public User findUserById(int id);

  2、输出pojo对象list,方法返回值是List<Pojo>   

//根据用户名模糊查找用户列表public List
findUserByUsername(String name);

  生成的动态代理对象中是根据mapper方法的返回值类型确定是调用selectOne(返回单个对象调用)还是selectList (返回集合对象调用 ).

7.2     resultMap

  mybatis中使用resultMap完成高级输出结果映射。

7.2.1     resultMap使用方法

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

  1、定义resultMap

  2、使用resultMap作为statement的输出映射类型

7.2.2     将下边的sql使用User完成映射

  SELECT id id_,username username_ FROM USER WHERE id=#{value}

  User类中属性名和上边查询列名不一致。

7.2.2.1              定义reusltMap

   

7.2.2.2              使用resultMap作为statement的输出映射类型

7.2.2.3              mapper.java

//根据id查询用户信息,使用resultMap输出    public User findUserByIdResultMap(int id);

7.2.2.4              测试

   @Test    public void testFindUserByIdResultMap() throws Exception {        SqlSession sqlSession = sqlSessionFactory.openSession();        //创建UserMapper对象,mybatis自动生成mapper代理对象        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);        //调用userMapper的方法        User user = userMapper.findUserByIdResultMap(1);        System.out.println(user.getUsername());}

7.3     小结

  使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

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

转载于:https://www.cnblogs.com/ChinaHook/p/5532452.html

你可能感兴趣的文章
HDU2907凸包+凹面
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏
查看>>
BZOJ 1574: [Usaco2009 Jan]地震损坏Damage
查看>>
Tiny4412 LED 程序
查看>>
电脑购买建议
查看>>
[C++]for 循环多个限制条件
查看>>
发送邮件
查看>>
Docker从入门到实战(一)
查看>>
MySql join匹配原理
查看>>
C++的高效从何而来
查看>>
吴裕雄--天生自然 HADOOP大数据分布式处理:安装XShell
查看>>
吴裕雄--天生自然 JAVASCRIPT开发学习:输出
查看>>
将已有的工程项目添加到Xcode到Git管理中
查看>>
吴裕雄 实战PYTHON编程(8)
查看>>
xhtml
查看>>
poj 1113 Wall (凸包模板题)
查看>>
cf 535B Tavas and SaDDas
查看>>
OO-面对对象的特征--多态、抽象
查看>>
看准网免登陆查看
查看>>
用pygame实现打飞机游戏-1-搭建框架
查看>>