mybatis的动态sql及模糊查询
2024-10-18 23:33:13
1、动态sql
使用类似于jstl表达式来实现
2、模糊查找
用一个对象来封装条件
步骤:
1)新建一个条件实体
package com.hy.mybatis.entity; public class ConditionUser {
private String name; private int minAge; private int maxAge; @Override
public String toString() {
return "ConditionUser [name=" + name + ", minAge=" + minAge
+ ", maxAge=" + maxAge + "]";
} public ConditionUser(String name, int minAge, int maxAge) {
super();
this.name = name;
this.minAge = minAge;
this.maxAge = maxAge;
} public ConditionUser() {
super();
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getMinAge() {
return minAge;
} public void setMinAge(int minAge) {
this.minAge = minAge;
} public int getMaxAge() {
return maxAge;
} public void setMaxAge(int maxAge) {
this.maxAge = maxAge;
} }
2)写sql:
<?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.hy.mybatis.mapper.User"> <select id="getUser" parameterType="ConditionUser" resultType="DUser">
select * from d_user where 1=1
<if test="name != '%null%'">
and name like ${name}
</if>
and age between #{minAge} and #{maxAge}
</select> </mapper><?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.hy.mybatis.mapper.User"> <select id="getUser" parameterType="ConditionUser" resultType="DUser">
select * from d_user where 1=1
<if test="name != '%null%'">
and name like ${name}
</if>
and age between #{minAge} and #{maxAge}
</select> </mapper>
3)测试:
@Test
public void testGetUsers() {
SqlSession session = MyBatisUtil.getSqlSession();
String statement = "com.hy.mybatis.mapper.User.getUser";
List<DUser> users = session.selectList(statement, new ConditionUser("%"+null+"%", 13, 18));
System.out.println(users);
}
最新文章
- Data Big Bang
- JS判断数组中是否有重复元素的方法
- Hadoop Shell命令字典(可收藏)
- 05_Excel操作_02_模拟Web环境的User列表导出
- Bzoj 2393: Cirno的完美算数教室 容斥原理,深搜
- Android app自动化测试之Python+Appium环境搭建
- Django新手图文教程
- android一些常用的代码2(收藏)
- 常见的 http 状态码
- 再好好聊聊 HTTP 里的 Cookie | 实用 HTTP
- OpenCV3编程入门-读书笔记2-core组件
- Nginx 如何通过连接池处理网络请求
- SQL查询数据并插入新表
- MySQL关于根据日期查询数据的sql语句
- 安全工具-cansina
- ASP入门(五)- VBScript过程和函数
- UI基础:UIControl及其子类
- 用cmd导入oracle的.dmp文件和修改oracle管理员密码
- c++ stringstream的使用
- jQuery 异步和同步请求