官方快速开始文档: https://mp.baomidou.com/guide/quick-start.html

官方配置文档: https://mp.baomidou.com/config/

网友总结的使用文档那个: https://blog.csdn.net/helloPurple/article/details/78715508

Mybatis源码解析-DynamicSqlSource和RawSqlSource的区别 https://www.cnblogs.com/question-sky/p/7569405.html

首先加入:

 

1问题: 关于注入SQL, 官方的文档 https://mp.baomidou.com/guide/sql-injector.html 实在太抽象,我这一般人无法看懂,所以找到 3.x版本别人的例子 https://www.cnblogs.com/liuyangfirst/p/9744011.html 跟着跑一圈,发现自己定义的注入了,可以插件原本的方法却没有了。后来才发现一个地方有问题:必须要重新加入插件原本的方法

更多注入资料,得研究里面的源码才了解,AbstractMethod抽象类提供了很多方法,不满足的话,就继承这个抽象,自己做一个新的抽象出来就好。

sqlWhereByMap(): 遍历@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap参数,来构造SQL条件,Key就是字段名字,不是属性。

sqlWhereEntityWrapper(): 遍历封装的对象类做SQL。

其他:可以继承一个新的抽象,增加自己的方法。

 

2问题. 上面弄好了,问题又来了,执行

后台居然打印: SELECT mapper_id,code,name FROM TEST_MAPPER_TB WHERE null=?  难道主键标记要配置? 一看文档 https://mp.baomidou.com/guide/faq.html 才发现: 检查是否指定了主键?如未指定,则会导致 selectById 相关 ID 无法操作,请用注解 @TableId 注解表 ID 主键。当然 @TableId 注解可以没有!但是你的主键必须叫 id(忽略大小写) 晕死了….

 

3问题:既然上面有问题,那去哪里找到注解的说明呢?原谅我没找到,只能靠google了。  终于在好到: https://blog.csdn.net/helloPurple/article/details/78715508 里面有几个说明的

 

4问题:查询接口使用 @Param(Constants.COLUMN_MAP) Map<String, Object> columnMap  ,Key必须是数据库字段的名字,不是mod里面的java属性。