MyBatis进行数据库查询时,有的业务需要进行模糊查询,按我们正常的逻辑进行模糊查询,会发现这是个坑,现将问题以及实现方式整理如下:
本过程采用Log4j进行记录,y通过日志记录方便查看sql语句。Log4j配置请查看学习笔记05
环境搭建请参考之前的笔记,本过程对实现模糊查询的三种方式进行重点标注。
一、MyBatis实现模糊查询
在数据库中,我们书写模糊查询的sql为
select * from 某表 where 某字段 like '%某某某%'
查询 某表 中 某字段中 包含 某某某 的数据
本例我们以在学生表查询学生姓名中 包含 “元”的学生,按照上述sql书写方式进行书写
数据库stundet表结构如下:
student表内容如下:
映射文件内容为:
<?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.yuan.model.Student">
<select id="queryByLikeName" parameterType="string" resultType="com.yuan.model.Student">
select * from student where sname like '%#{sname}%'
</select>
</mapper>
测