Mybatis学习笔记
本篇内容,紧接上一篇内容 Mybatis学习笔记一
输入映射和输出映射
传递简单类型和pojo类型上篇已介绍过,下面介绍一下包装类型。
传递pojo包装对象
开发中通过可以使用pojo传递查询条件。查询条件可能是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如查询用户信息的时候,将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。包装对象即Pojo类中的一个属性是另外一个pojo。
演示:根据用户名模糊查询用户信息,查询条件放到QueryVo的user属性中。
1、编写QueryVo
package com.yyb.pojo;
import java.io.Serializable;
/**
* Created by Administrator on 2017/8/16.
*/
public class QueryVo implements Serializable{
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
private User user;
}
2、userMapper配置
<select id="findByQueryVo" parameterType="QueryVo" resultType="User">
SELECT * FROM user WHERE username like "%"#{user.username}"%"
</select>
3.、userMapper接口中添加
List<User> findByQueryVo(QueryVo vo);
4、测试类
@org.junit.Test
public void func2() throws Exception {
//加载核心配置文件
String resource = "sqlMapConfig.xml";
InputStream in = Resources.getResourceAsStream(resource);
//创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//创建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//SqlSEssion帮我生成一个实现类 (给接口)
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
QueryVo vo=new QueryVo();
User u=new User();
u.setUsername("五");
vo.setUser(u);
List<User> us = userMapper.findByQueryVo(vo);
for (User use:us) {
System.out.println(use);
}
}

浙公网安备 33010602011771号