详解MyBatis模糊查询LIKE的三种方式

网友投稿 644 2023-01-20


详解MyBatis模糊查询LIKE的三种方式

模糊查询也是数据库SQL中使用频率很高的SQL语句,使用MyBatis来进行更加灵活的模糊查询。

直接传参法

直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中。

public void selectBykeyWord(String keyword) {

String id = "%" + keyword + "%";

String roleType = "%" + keyword + "%";

String roleName = "%" + keyword + "%";

userDao.selectBykeyWord(id,roleName,roleType);

}

在Dao层指定各个参数的别名

复制代码 代码如下:

List selectBykeyWord(@Param("id") String id,@Param("roleName") String roleName,@Param("roleType") String roleType);

SELECT

*

FROM

t_role

WHERE

role_name LIKE #{roleName}

OR id LIKE #{id}

OR role_type LIKE #{roleType}

执行出来的SQL语句:

SELECT

*

FROM

t_role

WHERE

role_name LIKE '%why%'

OR id LIKE '%why%'

OR role_type LIKE '%why%';

CONCAT()函数

mysql的 CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一。

CONCAT(str1,str2,...)

List selectBykeyWord(@Param("keyword") String keyword);

SELECT

*

FROM

t_role

WHERE

role_name LIKE CONCAT('%',#{keyword},'%')

OR

id LIKE CONCAT('%',#{keyword},'%')

OR

role_type LIKE CONCAT('%',#{keyword},'%')

Mybatis的bind

List selectBykeyWord(@Param("keyword") String keyword);

SELECT

*

FROM

t_role

WHERE

role_name LIKE #{pattern}

OR

id LIKE #{pattern}

OR

role_type like #{pattern}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:程序接口管理工具(接口开发工具)
下一篇:比较好的接口管理工具(接口管理工具有哪些)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~