当前位置: 首页 > 知识库问答 >
问题:

mybatis-plus - 这个mybatis的@Select自己写sql还会被侵入怎么办?

叶嘉颖
2023-09-14

这种mapper里自己写的sql,我以为mybatis-plus不会侵入了,谁知还是被侵入了,运行时自动给我添加了个条件

@Mapperpublic interface MyMapper extends BaseMapperX<AdminUserDO> {    @Select({"select * from system_users where 1=1 and deleted = 0 and username = #{username} limit 1"})    List<AdminUserDO> getUser(@Param("username") String username);}

image.png
请问大佬们,mybatis-pluse 下 怎么做自己的sql才不会被侵入

共有2个答案

孔鹤龄
2023-09-14
@Mapperpublic interface MyMapper extends BaseMapperX<AdminUserDO> {    @SqlParser(filter = true)    @Select({"select * from system_users where 1=1 and deleted = 0 and username = #{username} limit 1"})    List<AdminUserDO> getUser(@Param("username") String username);}
慕容品
2023-09-14

MyBatis-Plus通常不会侵入自定义SQL语句,但在某些情况下,可能会进行一些自动化的处理。如果你希望完全掌控自己的SQL语句,可以尝试以下方法:

使用@SelectProvider注解:
你可以使用@SelectProvider注解来指定自己的SQL提供器类,以便完全自定义SQL语句。首先,创建一个SQL提供器类,然后在提供器类中构建你的SQL语句。然后在Mapper接口方法上使用@SelectProvider注解引用提供器类。这样可以避免MyBatis-Plus对SQL的干预。

创建SQL提供器类:

public class MyCustomSqlProvider {    public String getUserSql(String username) {        return "select * from system_users where username = #{username} limit 1";    }}

在Mapper接口中使用@SelectProvider注解:

@Mapperpublic interface MyMapper extends BaseMapperX<AdminUserDO> {    @SelectProvider(type = MyCustomSqlProvider.class, method = "getUserSql")    List<AdminUserDO> getUser(@Param("username") String username);}
 类似资料:
  • 问个基础问题噻 这个in该怎么写,怎么给参数好? PointsMapper.java里

  • Mybatis-Plus 是一个 MyBatis 增强工具包,简化 CRUD 操作。 启动加载 XML 配置时注入单表 SQL 操作 ,为简化开发工作、提高生产率而生。 Maven 坐标 http://search.maven.org/#search%7Cga%7C1%7Cmybatis-plus     com.baomidou    mybatis-plus    maven 官方最新版本号为

  •   mybatis分页插件MicroPageInterceptor 特点: 1, 支持mysql和oracle分页 2, 不必在xml编写统计count的sql 3, 使用RowBounds子类PageInfo作为分页信息和记录总数的载体,不必像其他分页插件那样要求输入输出参数必须继承特殊父类。 4, 可在PageInfo中填写自定义排序sql串,提高查询性能和排序灵活性   jar已经提交mav

  • 1.介绍: MyBatis generator plus 基于mybatis-generator-core v.1.3.2 扩展,增加如下主要特性: 1.生成支持Oracle、Mysql、Sqlserver分页查询的代码: //分页查询demoOperateLogExample relationshipsExample = new OperateLogExample();relationships

  • 1. 前言 本小节,我们将一起学习 MyBatis select。 在 MyBatis 中,select 标签对应于 SQL 语句中的 select 查询,我们会在 select 标签中填充 SQL 查询语句,然后在代码中通过对应接口方法来调用。 2. 定义 慕课解释:select 标签用于映射 SQL 中的查询语句 3. 实例 MyBatis select 可分为xml和注解两种使用方式。 3.

  • 本文向大家介绍Mybatis-Plus和Mybatis的区别详解,包括了Mybatis-Plus和Mybatis的区别详解的使用技巧和注意事项,需要的朋友参考一下 原文:https://blog.csdn.net/qq_34508530/article/details/88943858 . 区别一 如果Mybatis Plus是扳手,那Mybatis Generator就是生产扳手的工厂。 通俗来