mybatis从入门到精通 联系客服

发布时间 : 星期六 文章mybatis从入门到精通更新完毕开始阅读e507e536e3bd960590c69ec3d5bbfd0a7856d556

publicclassUserQueryVo{ }

publicvoid setUserCustom(UserCustom userCustom){ }

this.userCustom = userCustom; publicUserCustom getUserCustom(){ }

return userCustom;

publicvoid setUsername(String username){ }

this.username = username; //模糊查询username匹配条件 privateString username;

publicString getUsername(){ }

return username; //在这里包装所需要的查询条件

//用户查询条件

privateUserCustom userCustom;

2)其次,为该包装类编写mapper.xml映射文件

在UserMapper.xml中定义用户信息综合查询(查询条件复杂,通过高级查询) 3)编写mapper.java接口

//用户信息的综合查询

publicList findUserList(UserQueryVo userQueryVo)throwsException;

4)测试类进行测试

@Test

publicvoid testFindUseList()throwsException{ }

SqlSession sqlSession = sqlSessionFactory.openSession(); //创建Usermapper对象,mybatis自定生成mapper代理对象

UserMapper userMapper = sqlSession.getMapper(UserMapper.class); //创建包装对象

UserQueryVo userQueryVo =newUserQueryVo(); UserCustom userCustom =newUserCustom(); userCustom.setUid(25);

userQueryVo.setUserCustom(userCustom); userQueryVo.setUsername(\);

//调用UserDao的方法

List list = userMapper.findUserList(userQueryVo); System.out.println(list.size());

6.2 输出映射 两种方式: 6.2.1 resultType

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

如果全部不一致,则不会生成结果对象;只要有一个一致,就会创建pojo对象。

输出简单类型-----例如:用户信息的综合查询列表总数,通过查询总数和上边用户综合查询列表才可以实现分页

1)mapper.xml

2)mapper.java

// 用户信息的综合查询

// 用户信息的综合查询总数

publicint findUserCount(UserQueryVo userQueryVo)

throwsException;

publicList findUserList(UserQueryVo userQueryVo)

throwsException;

6.2.2 resultMap

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

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

resultMap=\>

2)mapper.java

publicUser findUserByIdResultMap(int uid)throwsException;

7、mybatis的动态sql:

mybatis核心对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接 7.1 需求 if标签判断

用户信息综合查询列表和用户信息查询总数这两个statement的定义使用动态sql 对查询条件进行判断,如果输入参数不为空,才进行查询条件的拼接

1)mapper.xml

2)接口代码不变

3)测试代码

7.2 需求(sql片段)

将上边实现的动态sql判断代码块抽取出来组成一个sql片段。其他的statement可以来引用这个sql片段 1)定义sql片段