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 mapperPUBLIC "-//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*/@Testpublic 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.测试结果

Mybatis多参数封装到一个类中模糊查询相关推荐

  1. java---解析XML文件,通过反射动态将XML内容封装到一个类中

    本博客讲的XML解析,使用的是dom4j. 首先建立一个maven项目,在dom.xml中引入相应的dom4j的版本.作者下载的是热度很高的1.6.1版本.maven的使用在这里不做详细讲解. 引入成 ...

  2. 利用抽象工厂创建DAO、利用依赖注入去除客户端对工厂的直接依赖、将有关Article的各种Servlet封装到一个Servlet中(通过BaseServlet进行

    利用抽象工厂创建DAO.利用依赖注入去除客户端对工厂的直接依赖.将有关Article的各种Servlet全部封装到一个Servlet中(通过BaseServlet来进行ArticleServlet方法 ...

  3. java定义一个类显示没有_Java 中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。_学小易找答案...

    [单选题]关于 Java 语言叙述错误的是( ). [判断题]类中 static 修饰的变量或方法,可以使用类名或对象的引用变量访问. [命名题]命名下列化合物, [单选题]急性胰腺炎的主要临床表现是 ...

  4. Java反射机制demo(五)—获得并调用一个类中的方法

    这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMetho ...

  5. @Transactional-同一个类中方法自调,调用方法事物失效

    问题分析 一个类中的方法调用另一个事物传播性为创建事物的方法,调用的方法事物失效? SpringAOP 代理的Service对象调用了其方法,这个方法再去调用这个Service中的其他方法是没有使用A ...

  6. html中可以添加几个类,从一个类中向一个HtmlHead对象添加多个元素

    我有一个页面的网站.我有4页所有页面都使用的主页面.每个页面使用不同的CSS和JavaScript头部标签内部.我想通过调用引用数据库表的类来添加标题,元描述和元关键字标记.但是,我无法找到一种方法将 ...

  7. C#判断一个类中有无指定名称的方法

    C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...

  8. Mybatis传入参数类型为ListIntergert作为条件进行查询

    Mybatis传入参数类型为List作为条件进行查询 higher2017关注 2017.02.07 10:23:16字数 130阅读 5,658 表结构: 表名称为constant 需求: 现在想查 ...

  9. SQLAlchemy中模糊查询;JS中POST带参数跳转;JS获取url参数

    SQLAlchemy中模糊查询,如何like多个关键字 JS中POST带参数跳转 一个项目中要跳转到另外一个项目,还需要带参数 考虑到安全性的问题,最好是用POST跳转,不能再URL中拼参 所以找到了 ...

最新文章

  1. SpringMVC——通俗易懂讲讲Ajax~
  2. python array 语法_Python基本语法
  3. CentOS下MySQL忘记root密码解决方法【转载】
  4. Java怎样获取Content-Type的文件类型Mime Type
  5. MYSQL Innodb逻辑存储结构
  6. Android 编写测试用例
  7. 如何回答「你的优势和劣势是什么」?【面试核心问题6】
  8. Pygame 官方文档 - pygame.mixer
  9. 树莓派Raspberry Pi 系统可连接家庭wifi 无法远程故障
  10. 如何注册Google Voice账号(电话号码)
  11. 河南科技大学计算机学院录取名单,【计算机考研复试通知】2018年河南科技大学硕士研究生复试通知...
  12. 电商直播发展正夯,搭建电商网站需要怎样的云服务器配置?
  13. 江苏卫视舞蹈演员机器人_百度机器人踢馆江苏卫视《芝麻开门》
  14. BZOJ 3772 精神污染 可持久化线段树
  15. 计算机信息管理 日语,2017年北京科技大学高职计算机信息管理(第一外语:日语)...
  16. pkuseg对文件分词时报错
  17. 笔试面试题目:三点共线的判断
  18. 【Python毕业设计源码】python主机硬件配置推荐系统
  19. Flash新手教程:打造拟真生态水族鱼缸-鼠绘锦鲤和浮叶
  20. ug html文件是什么,ug未保存以下对象

热门文章

  1. hazelcast 使用_使用HazelCast进行Hibernate缓存:JPA缓存基础知识
  2. aws lambda使用_使用Lambda,Api Gateway和CloudFormation在AWS云上使用Java
  3. 重置线程中断状态_记住要重置线程上下文类加载器
  4. Apache Camel 3 –骆驼核心vs骆驼核心引擎(较小的核心)
  5. Hibernate事实:集成测试策略
  6. 无状态会话的ejb_Java EE状态会话Bean(EJB)示例
  7. Spring Boot&Angular 5&Spring Data&Rest示例(CRUD)
  8. jaxb入门_JAXB教程–入门
  9. rsync 同步优化_可以优化同步吗?
  10. jpa加密_使用JPA侦听器的数据库加密