码上敲享录 > Mybatis面试题 > Mybatis中如何进行模糊查询?

Mybatis中如何进行模糊查询?

上一章章节目录下一章 2023-07-16已有149人阅读 评论(0)

在 MyBatis 中进行模糊查询可以使用 SQL 的 LIKE 语句结合参数来实现。具体的实现方式取决于你是使用注解方式还是 XML 方式进行查询语句的定义。


以下是两种常见的方式:


1. 注解方式:


```java

@Mapper

public interface UserMapper {

   @Select("SELECT * FROM user WHERE name LIKE CONCAT('%', #{keyword}, '%')")

   List<User> searchUsersByKeyword(@Param("keyword") String keyword);

}

```


在上述示例中,使用 `SELECT * FROM user WHERE name LIKE CONCAT('%', #{keyword}, '%')` SQL 语句进行模糊查询。使用 `CONCAT` 函数将查询参数与 `'%'` 进行拼接,实现模糊查询。


2. XML 方式:


```xml

<!-- UserMapper.xml -->

<mapper namespace="com.example.UserMapper">

   <select id="searchUsersByKeyword" resultType="com.example.User">

       SELECT * FROM user WHERE name LIKE CONCAT('%', #{keyword}, '%')

   </select>

</mapper>

```


在上述示例中,使用 `<select>` 标签定义了查询语句。通过 SQL 语句 `SELECT * FROM user WHERE name LIKE CONCAT('%', #{keyword}, '%')` 进行模糊查询。


无论使用哪种方式,关键是在 SQL 语句中使用 `LIKE` 进行模糊匹配并结合 `%` 通配符,这样就可以实现模糊查询。同时,根据具体的业务需求,可以在 `#{keyword}` 处传入不同的参数来搜索匹配的数据。


需要注意的是,在使用模糊查询时,可能需要考虑通配符的使用以及 SQL 注入的风险。可以对输入参数进行合理的校验和过滤,或者使用预编译语句和占位符来防止 SQL 注入攻击。


向大家推荐《Activiti工作流实战教程》:https://xiaozhuanlan.com/activiti
0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交