Mybatis-Plus之浅谈SQL注入的原理

加油,新时代打工人。

  1. MyBatis-Plus快速入门–环境搭建
  2. MyBatis-Plus–三种方式整合之一 Mybatis+MP整合
  3. MyBatis-Plus–三种方式整合之二 Spring+MP整合
  4. MyBatis-Plus–三种方式整合之三 Spring Boot+MP整合
  5. 【详细】Spring Boot+Mybatis Plus (全CRUD和分页查询)
  6. MyBatis–Plus之执行 SQL 分析打印
    半个月前,我们测试了全MP-CRUD和分页,今天我们看看为什么不用像以前Mybatis那样,写一堆SQL语句才可以完成CRUD操作。

一、底层实现

  1. 我们双击shift来搜索SQL自定义注入类 —ISqlInjector
    在这里插入图片描述
  2. 单击打开该类,是个接口,我们查看有哪些抽象方法
    在这里插入图片描述
  3. Ctrl+H 查看抽象方法
    在这里插入图片描述
    4.双击打开ISqlInjector的抽象方法 AbstractSqlInjector有两个方法
    (1)第一个方法来检查注入,里面有个循环判断注入自定义方法
    在这里插入图片描述
    (2)第二个方法是注入的集合,我们来查看这个集合
    在这里插入图片描述
    (3)Ctrl+H我们看到这个里面的方法就是我们直接调用的CRUD
    在这里插入图片描述

二、Debug调试查看

  1. 这里我们用测试查询所有的注入selectList,双击打开即可
    在这里插入图片描述

  2. 在sql语句上打个断点
    在这里插入图片描述

  3. 我们在调用selectList上打个断点
    在这里插入图片描述

  4. Debug运行,F8下一步走到 return到映射表的语句
    在这里插入图片描述
    4.我们单击进入 addSelectMappedStatementForTable,进入到了这里我们看到在传统的JDBC中我们写的返回结果集,这里都给我们返回出来了
    在这里插入图片描述

  5. 我们继续运行Debug,我们看到跳到了我们调用selectList,将结果集给我们了。
    在这里插入图片描述


版权声明:本文为weixin_45397785原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。