七、MyBatis实现模糊查询的三种方式

简介: 由于#{}是占位符本身,自带单引号,所以在模糊查询时需要一些技巧。

准备

数据库表

2345_image_file_copy_118.jpg

bean

2345_image_file_copy_119.jpg

模糊查询

以查询出所有用户名中含字母a的人为例。

方式一

接口

public interface MohuSQLPerson {
    List<Person> selectPerson(@Param("mohu") String s);
}

映射文件

<mapper namespace="com.xxx.mapper.MohuSQLPerson"><!--接口-->
<!--    List<Person> selectPerson(String s);-->
    <select id="selectPerson" resultType="com.xxx.pojo.Person">
        select * from t_person where name like '%${mohu}%'
    </select>
</mapper>

测试

        MohuSQLPerson mapper = sqlSession.getMapper(MohuSQLPerson.class);
        //查询出所有用户名中含字母a的人。
        List<Person> a = mapper.selectPerson("a");
        System.out.println(a);

输出结果

2345_image_file_copy_120.jpg

说明

${}双引号需要自己加,所以正好模糊查询。

方式二

接口

public interface MohuSQLPerson {
    List<Person> selectPerson(@Param("mohu") String s);
}

映射文件

<mapper namespace="com.xxx.mapper.MohuSQLPerson"><!--接口-->
<!--    List<Person> selectPerson(String s);-->
    <select id="selectPerson" resultType="com.xxx.pojo.Person">
        select * from t_person where name like concat("%",#{mohu},"%")
    </select>
</mapper>

测试

        MohuSQLPerson mapper = sqlSession.getMapper(MohuSQLPerson.class);
        //查询出所有用户名中含字母a的人。
        List<Person> a = mapper.selectPerson("a");
        System.out.println(a);

输出结果

2345_image_file_copy_121.jpg

说明

通过mysql再带concat函数将三个字符串拼接起来。

方式三

接口

public interface MohuSQLPerson {
    List<Person> selectPerson(@Param("mohu") String s);
}

映射文件

<mapper namespace="com.xxx.mapper.MohuSQLPerson"><!--接口-->
<!--    List<Person> selectPerson(String s);-->
    <select id="selectPerson" resultType="com.xxx.pojo.Person">
        select * from t_person where name like "%"#{mohu}"%"
    </select>
</mapper>

测试

        MohuSQLPerson mapper = sqlSession.getMapper(MohuSQLPerson.class);
        //查询出所有用户名中含字母a的人。
        List<Person> a = mapper.selectPerson("a");
        System.out.println(a);

输出结果

2345_image_file_copy_122.jpg

相关文章
|
7月前
|
SQL Java 数据库连接
Mybatis【Map传参与模糊查询】
Mybatis【Map传参与模糊查询】
|
SQL Java 数据库连接
17MyBatis - MyBatis模糊查询
17MyBatis - MyBatis模糊查询
65 0
|
SQL Java 数据库连接
MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射
MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射
386 0
|
SQL Java 数据库连接
在mybatis中,使用map传递参数和进行模糊查询的方法
在mybatis中,使用map传递参数和进行模糊查询的方法
396 0
|
SQL XML Java
Mybatis系列(二)之动态SQL和模糊查询
Mybatis系列(二)之动态SQL和模糊查询
|
SQL XML Java
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
1202 0
|
Java 关系型数据库 MySQL
MyBatis模糊查询like的三种方式
MyBatis模糊查询like的三种方式
131 0
|
SQL Java 数据库连接
MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射,让你在面试中脱颖而出!!
MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射,让你在面试中脱颖而出!!
211 0
|
7月前
|
Java 数据库连接 mybatis
Mybatis中模糊查询like语句的使用方法
Mybatis中模糊查询like语句的使用方法
70 0