1.创建QueryValueObject实体类
package com.william.domain;
import org.omg.PortableInterceptor.USER_EXCEPTION;
/**
* @author :lijunxuan
* @date :Created in 2019/7/12 12:09
* @description :
* @version: 1.0
*/
public class QueryValueObject {
private User user;
private Integer startIndex;
private Integer pageSize;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Integer getStartIndex() {
return startIndex;
}
public void setStartIndex(Integer startIndex) {
this.startIndex = startIndex;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
}
2.UserMapper接口
package com.william.dao;
import com.william.domain.QueryValueObject;
import com.william.domain.User;
import java.util.List;
public interface UserMapper {
/**
* 封装到一个类中查询
* @param queryValueObject
* @return
*/
public List<User> findByCondition(QueryValueObject queryValueObject);
}
3.UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.william.dao.UserMapper">
<!--多参数封装到一个类中多条件查询-->
<select id="findByCondition" parameterType="QueryValueObject" resultType="user">
select * from user where username like "%"#{user.username}"%" and sex=#{user.sex}
limit #{startIndex},#{pageSize}
</select>
</mapper>
4.TestCrud测试类
package com.william;
import com.william.dao.UserMapper;
import com.william.domain.QueryValueObject;
import com.william.domain.User;
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.Test;
import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* @author :lijunxuan
* @date :Created in 2019/7/12 10:16
* @description :
* @version: 1.0
*/
public class TestCrud {
/**
* 多参数封装到一个类中,多条件查询
* @throws IOException
*/
@Test
public void findByCondition() throws IOException {
InputStream inputStream = Resources.getResourceAsStream("Mybatis-configuration.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取某接口的动态代理对象(获取某接口的一个实现类)
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
QueryValueObject queryValueObject = new QueryValueObject();
User user = new User();
user.setUsername("a");
user.setSex("男");
queryValueObject.setPageSize(5);
queryValueObject.setStartIndex(0);
queryValueObject.setUser(user);
List<User> userMapperByCondition = userMapper.findByCondition(queryValueObject);
for (User user1 : userMapperByCondition) {
System.out.println(user1);
}
sqlSession.close();
}
}
5.测试结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9f6f48e9cd1b19035cbf95dddcc6fa2b.png)