今天需要用到mybatis 3.0.6的模糊查询, google了一下,很多人问问题,但是回答清楚的确没发现,以下是我项目中遇到问题的总结:
1. Mybatis sql语句的打印问题。 Mybatis本身集成了log4j,所以我们只需要在log4j的配置文件中改改就能让它打印出sql信息。在log4j.properties文件中加上:
log4j.logger.java.sql=debug,stdout
2. 模糊查询的问题。在Mapper文件中加上,
<select id="selectByExampleLike" parameterType="com.CLIENT" resultMap="BaseResultMap">
select
CLIENT_ID, CLIENT_NAME, CLIENT_CODE, CLIENT_LNAME, CLIENT_FNAME, CLIENT_EMAIL, CLIENT_PASS,
CLIENT_ADDRESS
from CLIENT WHERE CLIENT_ID != ''
<if test="clientId != null">
AND CLIENT_ID like CONCAT('%','${clientId}','%' )
</if>
<if test="clientName != null">
AND CLIENT_NAME like CONCAT('%','${clientName}','%' )
</if>
<if test="clientCode != null">
AND CLIENT_CODE like CONCAT('%','${clientCode}','%' )
</if>
<if test="clientLname != null">
AND CLIENT_LNAME like CONCAT('%','${clientLname}','%' )
</if>
<if test="clientFname != null">
AND CLIENT_FNAME like CONCAT('%','${clientFname}','%' )
</if>
<if test="clientEmail != null">
AND CLIENT_EMAIL like CONCAT('%','${clientEmail}','%' )
</if>
<if test="clientPass != null">
AND CLIENT_PASS like CONCAT('%','${clientPass}','%' )
</if>
<if test="clientAddress != null">
AND CLIENT_ADDRESS like CONCAT('%','${clientAddress}','%' )
</if>
</select>
然后可以通过测试:
public class CLIENTServiceImplTest {
public static void main(String[] args) {
SqlSessionFactory factory = null;
try {
factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader("Configuration.xml"));
} catch (IOException e) {
e.printStackTrace();
}
SqlSession sqlSession = factory.openSession();
CLIENT example = new CLIENT();
example.setClientId(1);
example.setStart(2);
example.setLimit(3);
example.setOrderByClause("CLIENT_ID ASC");
List<CLIENT> list = sqlSession.getMapper(CLIENTMapper.class).selectByExampleLike(example);
for(CLIENT c : list){
System.out.println(c.getClientId()+" "+c.getClientName());
}
System.out.println("------------------- list.size: " + list.size());
for(int i=0;i<10;i++){
// list = sqlSession.getMapper(CLIENTMapper.class).selectByExample(example);
}
}
}
Configuration.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="myexample">
<environment id="myexample">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="coc/mg/dao/CLIENTMapper.xml" />
</mappers>
</configuration>
好,模糊查询搞定!
分享到:
相关推荐
MyBatis模糊查询
mybatis的逆向助手确实好用,可以省去很多编写常规sql语句的时间,但是它没办法自动生成模糊查询语句,但开发中模糊查询是必不可少的,所以,需要手动对mapper编写模糊查询功能。 这里先明确MyBatis/Ibatis中#和$的...
mybatis模糊查询,oracal,mysql,sqlserver三种不同数据库的不同写法
今天小编就为大家分享一篇关于Mybatis模糊查询和动态sql语句的用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%*%)和半角模糊查询(%*或*%)
模糊查询也是数据库SQL中使用频率很高的SQL语句,这篇文章主要介绍了详解MyBatis模糊查询LIKE的三种方式,非常具有实用价值,需要的朋友可以参考下
主要介绍了Mybatis模糊查询及自动映射实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了MyBatis中的模糊查询语句的相关资料,需要的朋友可以参考下
主要介绍了Mybatis 中 Oracle 的拼接模糊查询及用法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了MyBatis实现模糊查询的几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
- Mybatis 模糊查询LIKE怎么写 - Mybatis是如何获取生成的主键的? - Mybatis动态SQL是什么? - Mybatis插件原理 - Mybatis一级缓存 - 一级缓存的原理 - 使得Mybatis一级缓存失效的方法 - Mybatis二级缓存 - ...
主要介绍了Mybatis中的like模糊查询功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
java代码-使用java解决mybatis模糊匹配写法的源代码 ——学习参考资料:仅用于个人学习使用!
代码包含: EscapeUtil.java:特殊字符(\,_,%)转义工具类 MyQueryInterceptor.java: Mybatis自定义拦截器 注意:该拦截器只支持QueryWrapper的like方法,serviceImpl层传全角模糊查询(%%) mapper或xml层的全角模糊查询(%...
针对父子级数据目录查询, 以前都是逐级的去根据父级id查询子集目录, 查出后最后再在代码中拼成树形结构, 相当复杂,我们可以利用 mybatis 提供的 collection 标签自动组织树形结构
使用Mybatis框架的模糊查询,详细博客地址:https://blog.csdn.net/qq_36654606/article/details/87393383
mybatis 增删改查 模糊查询 操作
主要介绍了MyBatis-plus 模糊查询的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
对于mybatis的动态sql查询,实现简单的增删查改功能及模糊查询和条件查询