输入映射
通过输入parameterType指定输入参数的类型,类型可以是简单类型,hashmap,pojo类型
主要讲pojo的包装对象
需求:完成用户综合查询,需要传入查询条件(可能包括用户信息,也可能包括其他信息,比如商品的、订单的)
针对上边需求,使用自定义的包装类的包装类
自定义包装类型pojo
在包装类型中pojo中复杂的查血条件包装进去。
package cn.itcast.mybatis.pojo;
public class UserQueryVo {
//包装所需要的查询条件
public UserCustom getUserCustom() {
return userCustom;
}
public void setUserCustom(UserCustom userCustom) {
this.userCustom = userCustom;
}
//用户的条件条件
private UserCustom userCustom;
//可以包装其他的查询条件:订单、商品
}
定义映射文件
一个是xml ,一个是java
在Usermapper中定义综合查询(查询条件复杂, 通过高级查询)
package cn.itcast.mybatis.mapper;
import cn.itcast.mybatis.pojo.UserCustom;
import cn.itcast.mybatis.pojo.UserQueryVo;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import cn.itcast.mybatis.pojo.User;
import javax.xml.ws.RespectBinding;
import java.io.InputStream;
import java.util.List;
import static org.junit.Assert.*;
public class UserMapperTest {
private SqlSessionFactory sqlSessionFactory;
@Before
public void setUp() throws Exception{
//创建sqlSessionFactory
String resource = "SqlMapConfig.xml";
//得到配置文件流
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂,传入配置文件信息
sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
//通过工厂得到SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
}
@Test
public void findUserById() throws Exception{
//创建usermappper对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//创建mapper对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//调用usermapper方法
User user = userMapper.findUserById(1);
System.out.println(user);
}
@Test
public void testFindUserList() throws Exception{
//创建usermappper对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//创建mapper对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//调用usermapper方法
UserQueryVo userQueryVo = new UserQueryVo();
UserCustom userCustom = new UserCustom();
userCustom.setSex("1");
userCustom.setUsername("张三丰");
userQueryVo.setUserCustom(userCustom);
List<UserCustom> list = userMapper.findUserList(userQueryVo);
System.out.println(list);
}
}