本文共 3991 字,大约阅读时间需要 13 分钟。
1.1通过resource加载单个映射文件1.2通过mapper接口加载 如 UserMapper.java UserMapper.xml1.3批量加载mapper(推荐)
通过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映射文件
mapperxml2.1.4 mapper.java //用户综合查询 public ListfindUserList(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.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,方法返回值是Listpublic 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/