博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis基础知识(四)&输入映射与输出映射
阅读量:3868 次
发布时间:2019-05-23

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

mapper映射

1.1通过resource加载单个映射文件
1.2通过mapper接口加载
如 UserMapper.java UserMapper.xml1.3批量加载mapper(推荐)

Mapper映射关系

2.输入映射

通过parameterType指定输入参数的类型,类型可以是简单类型,hashmap, 2.1传递pojo的包装对象2.1.1需求完成用户信息的综合查询,需要传入的条件很复杂(可能包括用户信息,其他信息,比如商品,订单的)2.1.2定义包装类类型pojo针对上边需求,建议使用自定义的包装类型的pojo在包装类型的pojo中将其复杂的查询条件包装进去public class UserQueryVo【    //在这里包装类所需要的查询条件    //用户查询条件    private UserCustom userCustom;    public UserCustom getUserCustom(){        return UserCustom;    }    public void setUserCustom(UserCustom userCustom){\        this.userCustom=userCustom;    }}

2.1.3映射文件

mapperxml

2.1.4 mapper.java //用户综合查询 public List
findUserList(UserQueryVo userQueryVo) throws Exception;2.1.5测试 public void testFindUserList() throws Exception{ SqlSession sqlSession=sqlSessionFactory.openSession(); //创建UserMapper对象,mybatis自动生成mapper代理对象 UserMapper userMapper=sqlSession.getMapper(UserMapper.class); //创建包装对象,设置查询条件 UserQueryVo userQueryVo=new UserQueryVo(); UserCustom userCustom=new UserCustom(); userCustom.setSex("1"); userCustom.setUsername("l李四"); userQueryVo.setUserCustom(userCustom); //调用userMapper的方法 List
list-=userMapper.findUserList(userQueryVo); System.out.print(list);l 2.2 hashMap类型,在使用hashMap时需要注意,查询的条件比如说ID和性别是作为key值放在hashMap中,value值是查询的具体条件,比如:

3.输出映射

3.1resultType    使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功    如果查询出来的列名和pojo中的属性名全部不一致。没有创建pojo对象    只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象    3.1.1 输出简单类型        3.1.1.1需求        用户信息的综合查询列表总数,通过查询总数和上边的用户综合查询列表才可以实现分页        3.1..1..2mapper.xml        
3.1.1.3mapper.java public int findUserCount(UserQueryVo userQueryVo) throws Exception; 3.1.1.4测试 public void testFindUserCount() throws Exception{ SqlSession sqlSession=sqlSessionFactory.openSession(); //创建UserMapper对象,mybatis自动生成mapper代理对象 UserMapper userMapper=sqlSession.getMapper(UserMapper.class); //创建包装对象,设置查询条件 UserQueryVo userQueryVo=new UserQueryVo(); UserCustom userCustom=new UserCustom(); userCustom.setSex("1"); userCustom.setUsername("l李四"); userQueryVo.setUserCustom(userCustom); //调用userMapper的方法 int count-=userMapper.findUserCount(userQueryVo); System.out.print(lcount;l小结查询出来的结果集只有一行且一列,可以使用简单类型进行输出映射3.1.2输出pojo对象和pojo列表 不管是输出pojo单个对象还是一个列表(list中包括pojo),在mapper。xml中resultType指定 的类型是一样的 在mapper.java指定的方法的返回值类型是不一样 1.输出单个pojo对象。方法,返回值是单个对象类型 public User findUserById(int id) throws Exception; 2.输出pojo对象list,方法返回值是List
public List
findUserByName(String name) throws Exception; 生成的动态代理对象中是根据mapper方法的返回值类型确定是调用selectOne(返回单个对象)还是selectList( 返回集合对象调用)3.2.1mapper.xml
3.2.2四通resultMap作为statement的输出映射类型
3.2.3mapper.java public User findUserByResultMap(int id) throws Exception; 3.2.3 测试 public void testFindUserByResultMap() throws Exception{ SqlSession sqlSession=sqlSessionFactory.openSession(); //创建UserMapper对象,mybatis自动生成mapper代理对象 UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user-=userMapper.findUserByResuyltMap(1); System.out.print(luser);

小结

使用resultType进行输出映射,只要查询出来的列名和pojo中的属性名一致,该列才可以映射成功    如果查询出来的列名和pojo的属性名不一致,通过定义一个mapper对列名和pojo属性名之间做    一个映射关系

转载地址:http://cwrmn.baihongyu.com/

你可能感兴趣的文章
Learning C with gdb
查看>>
不可不知的json库
查看>>
JSON格式解析和libjson使用简介
查看>>
关于Json格式的理解
查看>>
c语言解析json数据
查看>>
一个C实现的记日志的函数库
查看>>
C语言简单实现日志功能的的题目
查看>>
C 实现的 日志模块
查看>>
C语言实现简单的分级别写日志程序
查看>>
深入理解HTTP Session
查看>>
理解TCP中的三次握手
查看>>
linux session 浅谈
查看>>
Emacs 中文学习手册-1
查看>>
Emacs学习笔记(1):初学者的学习计划
查看>>
Emacs学习笔记(13):在Emacs中打开pdf
查看>>
Emacs学习笔记(14):在Emacs中使用git
查看>>
Emacs for vim Users---from http://www.crazyshell.org/blog/
查看>>
静态库和动态库链接那些事--http://www.crazyshell.org/blog/?p=50
查看>>
一年成为Emacs高手(像神一样使用编辑器) .--http://blog.csdn.net/redguardtoo/article/details/7222501
查看>>
GNU make 指南
查看>>