首页 > 其他分享 >mybatis用注解如何实现模糊查询

mybatis用注解如何实现模糊查询

时间:2023-07-30 10:34:48浏览次数:34  
标签:keyword Param 查询 SQL mybatis 注解 Select

在 MyBatis 中使用注解实现模糊查询非常简单,只需要在相应的 SQL 语句中使用 like 关键字即可。以下是实现模糊查询的示例代码:

@Select("SELECT * FROM users WHERE name LIKE '%${keyword}%'")
List<User> findUsersByName(@Param("keyword") String keyword);

上述代码用 @Select 注解指定了查询语句,其中的 ${keyword} 是用于动态替换的占位符,然后用 @Param 注解指定了参数名。在调用该方法时,只需要传入对应的关键字即可,MyBatis 会将其自动拼接到 SQL 语句中。

需要注意的是,由于使用了字符串拼接,存在 SQL 注入的风险,因此建议使用预编译的方式来防止注入攻击。如下所示:

@Select("SELECT * FROM users WHERE name LIKE CONCAT('%', #{keyword}, '%')")
List<User> findUsersByName(@Param("keyword") String keyword);

上述代码使用了 #{} 占位符,并使用 CONCAT 函数来进行字符串拼接,这样就可以有效地防止注入攻击。

标签:keyword,Param,查询,SQL,mybatis,注解,Select
From: https://www.cnblogs.com/explore-03/p/17591087.html

相关文章

  • mybatis-puls的使用
    MyBatisPlus简介无侵入:只做增强不做改变,不会对现有工程产生影响强大的CRUD操作:内置通用的Mapper,少量配置即可实现CRUD操作支持Lambda:编写查询条件无需担心字段写错支持主键自动生成内置分页插件所需的依赖<dependency><groupId>com.baomidou</groupId><a......
  • 不启动SpringBootApplication 直接测试mybatis 下面xml中的sql
     测试类 privatestaticSqlSessionsqlSession=null;privatestaticRunoobTblMappermapper; @BeforeClasspublicstaticvoidsetUpMybatisDatabase()throwsIOException{InputStreamresourceAsStream=null;try{ClassLoaderclassLoader=R......
  • mybatis-puls的使用
    MyBatisPlus简介无侵入:只做增强不做改变,不会对现有工程产生影响强大的CRUD操作:内置通用的Mapper,少量配置即可实现CRUD操作支持Lambda:编写查询条件无需担心字段写错支持主键自动生成内置分页插件所需的依赖<dependency><groupId>com.baomidou</groupId><a......
  • 十九、消息查询
    RocketMQ支持按照下面两种维度(“按照MessageId查询消息”、“按照MessageKey查询消息”)进行消息查询。在RocketMQdashboard中:点击消息,可以选择MessageId和MessageKey查询。按照MessageId查询消息RocketMQ中的MessageId的长度总共有16字节,其中包含了消息存储主机地址(IP地......
  • MySQL慢查询解析
    文档课题:MySQL慢查询解析.数据库:mysql5.7.211、建测试表1.1、建表结构.mysql>usebooksDB;ReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaquickerstartupwith-ADatabasechangedCREATETABLE`t_user......
  • mybatis源码研究、搭建mybatis源码运行的环境
    文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、有兴趣的可以关注一手。前提研究源码、对我们的技术提高还是很有帮助的。简单的源码建议从mybatis入手。涉及到的设计模式不是很多。需要下载mybatis的源码和父工程依赖。注意下载的mybatis中的父工程依赖版本要对应。这里......
  • 如何在 SAP Fiori Elements 应用的 manifest.json 里定义注解
    在SAPFioriElements应用中,manifest.json文件是应用的主要配置文件,其中定义了应用的元数据、模型、服务等信息。其中,dataSources区域负责描述应用使用的数据源,比如OData服务或者其他类型的后端服务。在dataSources区域的settings字段中,我们可以定义annotations,它们是......
  • @Conditional注解
    1.介绍@Conditional注解@Conditional注解源码@Conditionl注解简单说明@Conditional注解所属包org.springframework.context.annotation.Conditional注解作用范围{ElementType.TYPE,ElementType.METHOD}类、接口、注解、枚举以及方法注解生命周期@Retention(RetentionPolicy......
  • 用于查找 SQL Server 中死锁的 T-SQL 查询
    用于查找SQLServer中死锁的T-SQL查询 早些时候,我写了一篇关于使用扩展事件来查找SQLServer上发生的死锁的文章。扩展事件对于跟踪服务器上短时间内发生的死锁有很大帮助,尤其是在生产环境中。然而,在开发环境中,我遇到过当多个开发人员尝试对表执行dml语句时出现持续长......
  • MyBatis中的association与collection应用
    MyBatis中的association与collection应用在使用MyBatis进行数据库操作时,经常会遇到需要处理对象之间的关联关系和集合映射的情况。为了更好地实现对象关系映射,MyBatis提供了association和collection两个核心功能,让我们可以更便捷地处理复杂的数据结构。本文将详......