iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >MybatisPlus调用原生SQL的实现方法
  • 779
分享到

MybatisPlus调用原生SQL的实现方法

MybatisPlus调用原生SQLMybatisPlus调用SQL 2023-02-01 09:02:33 779人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

前言 在有些情况下需要用到mybatisPlus查询原生sql,MybatisPlus其实带有运行原生SQL的方法。 方法一 这也是网上流传最广的方法,但是我个人认为这个方法并不优雅

前言

在有些情况下需要用到mybatisPlus查询原生sql,MybatisPlus其实带有运行原生SQL的方法。

方法一

这也是网上流传最广的方法,但是我个人认为这个方法并不优雅,且采用${}的方式代码审计可能会无法通过,会被作为代码漏洞

public interface BaseMapper<T> extends com.baomidou.mybatisplus.core.mapper.BaseMapper<T> {
 
    @Select("${nativeSql}")
    Object nativeSql(@Param("nativeSql") String nativeSql);
}

使用一个自己的BaseMapper去继承MybatisPlus自己的BaseMapper,然后所有的Mapper去继承自己写的BaseMapper即可。那么所有的Mapper都能查询原生SQL了。
问题在于${nativeSql}可能会被作为代码漏洞,不是很提倡这种写法。

方法二

使用SqlRunner的方式执行原生SQL。这个方法提倡。

要使用SqlRunner的前提是打开SqlRunner,编辑application.yaml增加配置如下:

mybatis-plus:
  global-config:
    enable-sql-runner: true

application.properties写法:

mybatis-plus.global-config.enable-sql-runner=true

如果不打开会报

Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for xxxxxxx

使用方法:

import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;

List<Map<String, Object>> mapList = SqlRunner.db().selectList("select * from test_example limit 1,10");

个人比较推荐使用这种方式来查询原生SQL,既不会污染Mapper,也不会被报出代码漏洞。

总结

到此这篇关于MybatisPlus调用原生SQL的实现方法的文章就介绍到这了,更多相关MybatisPlus调用原生SQL内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: MybatisPlus调用原生SQL的实现方法

本文链接: https://www.lsjlt.com/news/193776.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MybatisPlus调用原生SQL的实现方法
    前言 在有些情况下需要用到MybatisPlus查询原生SQL,MybatisPlus其实带有运行原生SQL的方法。 方法一 这也是网上流传最广的方法,但是我个人认为这个方法并不优雅...
    99+
    2023-02-01
    MybatisPlus调用原生SQL MybatisPlus调用SQL
  • MybatisPlus调用原生SQL的三种方法实例详解
    目录前言方法一方法二方法三MyBatis-Plus执行原生SQL前言 在有些情况下需要用到MybatisPlus查询原生SQL,MybatisPlus其实带有运行原生SQL的方法,我...
    99+
    2022-11-13
  • 原生实现C#与Lua相互调用方法(Unity3D可用)
    目录引言一、编译Lua动态链接库1. 编译Windows下使用的DLL文件2. 编译Android下使用的SO文件二、编写C#使用的API1. 动态链接库在Unity中的存放位置。2...
    99+
    2022-11-13
  • MyBatisPlus代码生成器的原理及实现详解
    目录一、代码生成器原理分析二、代码生成器实现一、代码生成器原理分析 我们在观察之前写的代码的时候,会发现很多重复的内容。  一个Book模板,,只需要把红色部分的内容全部...
    99+
    2022-11-13
    MyBatisPlus代码生成器原理 MyBatisPlus代码生成器实现 MyBatisPlus 代码生成器
  • 写优雅SQL原生语句的方法
    写优雅SQL原生语句的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!前言:上一篇讲Mysql基本架构时,以"...
    99+
    2022-10-18
  • 原生AJAX封装的实现方法
    这篇文章主要介绍“原生AJAX封装的实现方法”,在日常操作中,相信很多人在原生AJAX封装的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”原生AJAX封装的实现方法”...
    99+
    2022-10-19
  • vue调用原生方法交互解读
    目录vue调用原生方法交互第一步第二步第三步第四步vue和原生native交互使用安卓与Vue交互方式vue调用原生方法交互 目前在做一个H5应用;需要调用原生方法进行交互;特此做一...
    99+
    2022-11-13
  • django中使用原生sql语句的方法步骤
    raw # row方法:(掺杂着原生sql和orm来执行的操作) res = CookBook.objects.raw('select id as nid from ...
    99+
    2022-11-11
  • MybatisPlus代码生成器的使用方法详解
    搭建测试的数据库和表数据的SQL SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -------------------...
    99+
    2022-11-12
  • django执行原生SQL查询的实现
    目录执行原生 SQL 查询1、执行原生查询1.1 普通查询1.2 将查询字段映射为模型字段1.3 索引查询1.4 将参数传给 raw()2、直接执行自定义 SQL2.1 指定连接数据...
    99+
    2022-11-12
  • 原生JavaScript轮播图实现方法
    本文实例为大家分享了JavaScript轮播图的实现方法,供大家参考,具体内容如下 效果截图: ​注:div容器大小和图片路径可以自行设置,添加img和a标签后浏览器可以...
    99+
    2022-11-12
  • javascript实现原生ajax的方法有哪些
    本篇内容主要讲解“javascript实现原生ajax的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript实现原生ajax的方法有哪些...
    99+
    2022-10-19
  • MybatisPlus queryWrapper的使用实例与方法
    方法: 部分实例: 查询数据库指定字段 queryWrapper.select("id, name, create_date"); 查询数据库指定日期,忽略时分秒,日期相等即可查出 queryWrapper.apply("date_f...
    99+
    2023-09-07
    sql mysql mybatis
  • DEDECMS实现在标签中嵌套调用SQL的方法
    本文以实例讲述了DEDEcms实现在标签中嵌套调用SQL的方法,对于dedecms的二次开发来说非常简单实用,实例代码如下所示: 复制代码代码如下:{dede:field.id runphp='yes'} $tsq...
    99+
    2022-06-12
    DEDECMS 标签 嵌套调用 SQL 方法
  • JS原生实现轮播图的几种方法
    轮播图 主要思想就是: 在大的容器里,装着一个很长的表,表是容器宽度的整数倍。 然后通过更改列表样式里的left属性来实现左右滑动。 本文旨在控制滑动五张图片,但在html中使用了七...
    99+
    2022-11-11
  • C/C++ 原生API实现线程池的方法
    线程池有两个核心的概念,一个是任务队列,一个是工作线程队列。任务队列负责存放主线程需要处理的任务,工作线程队列其实是一个死循环,负责从任务队列中取出和运行任务,可以看成是一个生产者和...
    99+
    2022-11-12
  • javascript实现原生ajax的几种方法介绍
    自从javascript有了各种框架之后,比如jquery,使用ajax已经变的相当简单了。但有时候为了追求简洁,可能项目中不需要加载jquery这种庞大的js插件。但又要使用到aj...
    99+
    2022-11-15
    javascript 原生ajax
  • MyBatisPlus+Lombok实现分页功能的方法详解
    目录一、Lombok1、添加Lombok依赖2、安装Lombok插件3、模型类上添加注解二、分页功能1、调用方法传入参数获取返回值2、设置分页拦截器3、运行测试程序一、Lombok ...
    99+
    2022-11-13
  • spring-data-jpa使用自定义repository来实现原生sql
    目录使用自定义repository实现原生sql自定义Repository接口创建自定义RepositoryFactoryBeanSpringDataJpa原生SQL查询a.首先在S...
    99+
    2022-11-12
  • Java实战之实现一个好用的MybatisPlus代码生成器
    目录一、先看下项目结构二、先引入MybatisPlus及Generator相关的依赖三、具体代码3.1 mapper.java.vm3.2 CodeGenerator3.3 生成测试...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作