【MyBatisPlus】MyBatisPlus 清疚 2023-10-08 20:34 88阅读 0赞 #### 文章目录 #### * 1、MyBatisPlus * 2、MyBatisPlus入门案例 * 3、标准数据层开发 * 4、DQL编程控制 * 5、DML编程控制 * 6、代码生成器 ## 1、MyBatisPlus ## ![在这里插入图片描述][66784049b45c4796a73a318dd4eee5ea.png] ![在这里插入图片描述][970db07a69a0402386cca37c624de902.png] ## 2、MyBatisPlus入门案例 ## * 创建工程时,不再勾选mybatis ![在这里插入图片描述][035e3458263347d49bb20ca5043c2971.png] * 手动添加mybatisPlus的起步依赖 ![在这里插入图片描述][edb6ae04be964a48b59c53221475d6d6.png] * 设置jdbc参数(application.yml) ![在这里插入图片描述][94a20460d6794e15a2b1447178d9f817.png] * 制作实体类与表结构,类名与表名对应,属性名与字段名对应 ![在这里插入图片描述][fd2b627170f14e75beb67602d9279f07.png] * 定义数据层接口,**`继承BaseMapper,传入对应的泛型`** ![在这里插入图片描述][9bc92fb96fc64518bcf583e59b18b6fe.png] * 测试类中注入Dao接口,测试功能 ![在这里插入图片描述][56c7ed281be847a28a2cd63a7b356955.png] ## 3、标准数据层开发 ## > **标准数据层CRUD功能** ![在这里插入图片描述][23e10340697944b78437720957bad5d3.png] -------------------- **`Lombok--简化实体类的开发`**. ![在这里插入图片描述][925fa8162a2c4e548c1051a426734229.png] ![在这里插入图片描述][67b53c4b2dc84eb49a3751cc8fdea6c5.png] -------------------- > **标准分页功能制作** * 设置MP分页拦截器作为Spring管理的Bean ![在这里插入图片描述][52a85e1d7e59471990a30cabc4b96d0b.png] * 执行分页查询 ![在这里插入图片描述][f276993139274414a9b1c79c721137c5.png] * 想看封装背后所执行的SQL,可以开启日志来调试 ![在这里插入图片描述][13f97f4580524530af070ec27219eae5.png] ## 4、DQL编程控制 ## > **条件查询–设置查询条件** 封装的条件查询的方法中,设置查询条件的三种方式: ![在这里插入图片描述][2c467259df87469c9468420aad9f334e.png] ![在这里插入图片描述][048bf4b4a0e24d119e7959584950d54c.png] 当查询条件变多的时候,支持链式编程,使用and和or进行连接 ![在这里插入图片描述][217925ef43544f4d83a15f9b20155c03.png] > **条件查询—null值的处理** ![在这里插入图片描述][2c295a2547624d4e8c02a2c6c3eefcc8.png] 查询时,某个值未传,若将null直接拿进SQL,则影响最终的查询结果,解决思路如下: * **使用if判断控制** ![在这里插入图片描述][2541ae562fef4c2c8a1ffe5521b412cf.png] * **做为方法的第一个condition参数** ![在这里插入图片描述][9cd5c0597ec84167be4d69337d8dc90b.png] > **查询投影** ![在这里插入图片描述][4de9df4b756b4fb48e825c0566cdcbda.png] > **查询条件设置** ![在这里插入图片描述][3a5e2bcefcae48b38584ead43f57b5c5.png] ![在这里插入图片描述][1d2c80afcdb34f48866c774cf25cd9b0.png] > **映射匹配兼容性** case1:表字段与属性字段不同步 ![在这里插入图片描述][854d146060ee485db01944561ee0bbca.png] 解决思路: ![在这里插入图片描述][8f1d701ff6e94c38952672eefdd773c6.png] 相关注解: ![在这里插入图片描述][cb7ef122a61840f6a29c2f4c9e470f84.png] case2:实体类中定义了数据库中未定义的属性 ![在这里插入图片描述][aa398fb1a48b43fe8f6feeb3904760ca.png] 解决思路: ![在这里插入图片描述][252e9fa05ab44252b831f491fe8fd304.png] 相关注解: ![在这里插入图片描述][84f7a7b190a249239322e5543355cb31.png] case3:采用默认查询,开放了更多的字段的查看权限,如password ![在这里插入图片描述][d10b31f88c094fd8aa7037a3bc928244.png] 解决思路: ![在这里插入图片描述][8971e25eedf94498b7a8bf4e2744c1de.png] 相关注解: ![在这里插入图片描述][a1483e0a62754d4bad0287e07a8e8ea9.png] case4:表名与类名设计不一致 解决思路: ![在这里插入图片描述][fb1b8a85b70f4a92a6938fa9d9c7a101.png] 相关注解: ![在这里插入图片描述][114daf9a6846487ba5887fb59cf833fe.png] ## 5、DML编程控制 ## > **id生成策略控制** ![在这里插入图片描述][e4d60b793a0a431a8299676c4510604a.png] **`@TableId注解`** ![在这里插入图片描述][d31fb5f1d5ac459fb55b5a97d861d313.png] 如果每个属性都加注解,会很烦, ![在这里插入图片描述][e22bf3962fcd4884bb0e34025b7e2b78.png] 提炼成一个全局配置写在application.yml文件中: ![在这里插入图片描述][0190d0c78f6b461a935cb725370050ef.png] > **多记录删除与查询:** ![在这里插入图片描述][202c277fa70c476b9c6064e7a51cb499.png] ![在这里插入图片描述][c8e394186ebb4c66b073c9d642f553d3.png] > **逻辑删除:** 如果将某些数据直接从数据库中删除,如1号员工离职: ![在这里插入图片描述][f70cdb2098b1400584d3fb909b757e28.png] 此时,数据最终汇总出问题,因此考虑逻辑删除,即用字段标记一下: ![在这里插入图片描述][5da2508583ec4bfdaea32b18e246f28d.png] 逻辑删除案例: * 数据库中添加逻辑删除标记字段 ![在这里插入图片描述][21f850ea8a974cd59d5fea159bf3b44b.png] * 实体类中添加相应字段,并使用注解@TableLogic设定当前字段为标记逻辑删除字段 ![在这里插入图片描述][0372eba178a649eba9af308495051224.png] * 在application.yml文件中配置逻辑删除字面值 ![在这里插入图片描述][a9161e771d24486a8bf8ca6b424828bb.png] 此时,删除数据实际是在执行update语句: ![在这里插入图片描述][87cfd61c304a4d369df734b161cb5b4f.png] > **乐观锁:** 业务场景–并发现象: ![在这里插入图片描述][d4a82e020752440ba7dd2938d255feaf.png] 乐观锁案例: * 数据库中添加锁标记字段 ![在这里插入图片描述][9cf046ca98104224b06b5775f3399828.png] * 实体类中添加相应的属性,并标记为锁字段 ![在这里插入图片描述][adc19cb3b8d049c89365fb8474160ed4.png] * 配置乐观锁拦截器,实现锁机制对应的动态SQL的拼接 ![在这里插入图片描述][c606662645d34a23b0d1e2c98058d816.png] * 使用乐观锁机制,在执行update修改前必须先获取到对应数据的version方可继续进行 ![在这里插入图片描述][0d4fecd51e7a484a8e13614cbe02865d.png] ## 6、代码生成器 ## ![在这里插入图片描述][276de2a4572846e39508a4bbf3b6628b.png] ![在这里插入图片描述][372d86ac748e4f05b4fed0bad78b49d8.png] 看完以上的对比,抽取出模板后,可以知道代码生成器的基本思路: ![在这里插入图片描述][ef2b8f5baf9e4c64b07129b223f7edcb.png] 代码生成器的用法: * 引入需要的依赖: ![在这里插入图片描述][14b357fefe584b9b894bc88629e72259.png] * 创建代码生成器对象,说明相关配置后,执行execute方法 ![在这里插入图片描述][096c2f3cf1af443f94c2e356abbf3100.png] * 数据源配置 ![在这里插入图片描述][0981708ad35247e390aadc462f022ec7.png] * 全局配置 ![在这里插入图片描述][42035d71496242ae9b51ac0b1d4a3ed5.png] * 包相关配置 ![在这里插入图片描述][26995f97bb534e69a463b04d12a066b5.png] * 策略配置 ![在这里插入图片描述][0ee99f15742e4da2b3f59d0a367778ea.png] [66784049b45c4796a73a318dd4eee5ea.png]: https://img-blog.csdnimg.cn/66784049b45c4796a73a318dd4eee5ea.png [970db07a69a0402386cca37c624de902.png]: https://img-blog.csdnimg.cn/970db07a69a0402386cca37c624de902.png [035e3458263347d49bb20ca5043c2971.png]: https://img-blog.csdnimg.cn/035e3458263347d49bb20ca5043c2971.png [edb6ae04be964a48b59c53221475d6d6.png]: https://img-blog.csdnimg.cn/edb6ae04be964a48b59c53221475d6d6.png [94a20460d6794e15a2b1447178d9f817.png]: https://img-blog.csdnimg.cn/94a20460d6794e15a2b1447178d9f817.png [fd2b627170f14e75beb67602d9279f07.png]: https://img-blog.csdnimg.cn/fd2b627170f14e75beb67602d9279f07.png [9bc92fb96fc64518bcf583e59b18b6fe.png]: https://img-blog.csdnimg.cn/9bc92fb96fc64518bcf583e59b18b6fe.png [56c7ed281be847a28a2cd63a7b356955.png]: https://img-blog.csdnimg.cn/56c7ed281be847a28a2cd63a7b356955.png [23e10340697944b78437720957bad5d3.png]: https://img-blog.csdnimg.cn/23e10340697944b78437720957bad5d3.png [925fa8162a2c4e548c1051a426734229.png]: https://img-blog.csdnimg.cn/925fa8162a2c4e548c1051a426734229.png [67b53c4b2dc84eb49a3751cc8fdea6c5.png]: https://img-blog.csdnimg.cn/67b53c4b2dc84eb49a3751cc8fdea6c5.png [52a85e1d7e59471990a30cabc4b96d0b.png]: https://img-blog.csdnimg.cn/52a85e1d7e59471990a30cabc4b96d0b.png [f276993139274414a9b1c79c721137c5.png]: https://img-blog.csdnimg.cn/f276993139274414a9b1c79c721137c5.png [13f97f4580524530af070ec27219eae5.png]: https://img-blog.csdnimg.cn/13f97f4580524530af070ec27219eae5.png [2c467259df87469c9468420aad9f334e.png]: https://img-blog.csdnimg.cn/2c467259df87469c9468420aad9f334e.png [048bf4b4a0e24d119e7959584950d54c.png]: https://img-blog.csdnimg.cn/048bf4b4a0e24d119e7959584950d54c.png [217925ef43544f4d83a15f9b20155c03.png]: https://img-blog.csdnimg.cn/217925ef43544f4d83a15f9b20155c03.png [2c295a2547624d4e8c02a2c6c3eefcc8.png]: https://img-blog.csdnimg.cn/2c295a2547624d4e8c02a2c6c3eefcc8.png [2541ae562fef4c2c8a1ffe5521b412cf.png]: https://img-blog.csdnimg.cn/2541ae562fef4c2c8a1ffe5521b412cf.png [9cd5c0597ec84167be4d69337d8dc90b.png]: https://img-blog.csdnimg.cn/9cd5c0597ec84167be4d69337d8dc90b.png [4de9df4b756b4fb48e825c0566cdcbda.png]: https://img-blog.csdnimg.cn/4de9df4b756b4fb48e825c0566cdcbda.png [3a5e2bcefcae48b38584ead43f57b5c5.png]: https://img-blog.csdnimg.cn/3a5e2bcefcae48b38584ead43f57b5c5.png [1d2c80afcdb34f48866c774cf25cd9b0.png]: https://img-blog.csdnimg.cn/1d2c80afcdb34f48866c774cf25cd9b0.png [854d146060ee485db01944561ee0bbca.png]: https://img-blog.csdnimg.cn/854d146060ee485db01944561ee0bbca.png [8f1d701ff6e94c38952672eefdd773c6.png]: https://img-blog.csdnimg.cn/8f1d701ff6e94c38952672eefdd773c6.png [cb7ef122a61840f6a29c2f4c9e470f84.png]: https://img-blog.csdnimg.cn/cb7ef122a61840f6a29c2f4c9e470f84.png [aa398fb1a48b43fe8f6feeb3904760ca.png]: https://img-blog.csdnimg.cn/aa398fb1a48b43fe8f6feeb3904760ca.png [252e9fa05ab44252b831f491fe8fd304.png]: https://img-blog.csdnimg.cn/252e9fa05ab44252b831f491fe8fd304.png [84f7a7b190a249239322e5543355cb31.png]: https://img-blog.csdnimg.cn/84f7a7b190a249239322e5543355cb31.png [d10b31f88c094fd8aa7037a3bc928244.png]: https://img-blog.csdnimg.cn/d10b31f88c094fd8aa7037a3bc928244.png [8971e25eedf94498b7a8bf4e2744c1de.png]: https://img-blog.csdnimg.cn/8971e25eedf94498b7a8bf4e2744c1de.png [a1483e0a62754d4bad0287e07a8e8ea9.png]: https://img-blog.csdnimg.cn/a1483e0a62754d4bad0287e07a8e8ea9.png [fb1b8a85b70f4a92a6938fa9d9c7a101.png]: https://img-blog.csdnimg.cn/fb1b8a85b70f4a92a6938fa9d9c7a101.png [114daf9a6846487ba5887fb59cf833fe.png]: https://img-blog.csdnimg.cn/114daf9a6846487ba5887fb59cf833fe.png [e4d60b793a0a431a8299676c4510604a.png]: https://img-blog.csdnimg.cn/e4d60b793a0a431a8299676c4510604a.png [d31fb5f1d5ac459fb55b5a97d861d313.png]: https://img-blog.csdnimg.cn/d31fb5f1d5ac459fb55b5a97d861d313.png [e22bf3962fcd4884bb0e34025b7e2b78.png]: https://img-blog.csdnimg.cn/e22bf3962fcd4884bb0e34025b7e2b78.png [0190d0c78f6b461a935cb725370050ef.png]: https://img-blog.csdnimg.cn/0190d0c78f6b461a935cb725370050ef.png [202c277fa70c476b9c6064e7a51cb499.png]: https://img-blog.csdnimg.cn/202c277fa70c476b9c6064e7a51cb499.png [c8e394186ebb4c66b073c9d642f553d3.png]: https://img-blog.csdnimg.cn/c8e394186ebb4c66b073c9d642f553d3.png [f70cdb2098b1400584d3fb909b757e28.png]: https://img-blog.csdnimg.cn/f70cdb2098b1400584d3fb909b757e28.png [5da2508583ec4bfdaea32b18e246f28d.png]: https://img-blog.csdnimg.cn/5da2508583ec4bfdaea32b18e246f28d.png [21f850ea8a974cd59d5fea159bf3b44b.png]: https://img-blog.csdnimg.cn/21f850ea8a974cd59d5fea159bf3b44b.png [0372eba178a649eba9af308495051224.png]: https://img-blog.csdnimg.cn/0372eba178a649eba9af308495051224.png [a9161e771d24486a8bf8ca6b424828bb.png]: https://img-blog.csdnimg.cn/a9161e771d24486a8bf8ca6b424828bb.png [87cfd61c304a4d369df734b161cb5b4f.png]: https://img-blog.csdnimg.cn/87cfd61c304a4d369df734b161cb5b4f.png [d4a82e020752440ba7dd2938d255feaf.png]: https://img-blog.csdnimg.cn/d4a82e020752440ba7dd2938d255feaf.png [9cf046ca98104224b06b5775f3399828.png]: https://img-blog.csdnimg.cn/9cf046ca98104224b06b5775f3399828.png [adc19cb3b8d049c89365fb8474160ed4.png]: https://img-blog.csdnimg.cn/adc19cb3b8d049c89365fb8474160ed4.png [c606662645d34a23b0d1e2c98058d816.png]: https://img-blog.csdnimg.cn/c606662645d34a23b0d1e2c98058d816.png [0d4fecd51e7a484a8e13614cbe02865d.png]: https://img-blog.csdnimg.cn/0d4fecd51e7a484a8e13614cbe02865d.png [276de2a4572846e39508a4bbf3b6628b.png]: https://img-blog.csdnimg.cn/276de2a4572846e39508a4bbf3b6628b.png [372d86ac748e4f05b4fed0bad78b49d8.png]: https://img-blog.csdnimg.cn/372d86ac748e4f05b4fed0bad78b49d8.png [ef2b8f5baf9e4c64b07129b223f7edcb.png]: https://img-blog.csdnimg.cn/ef2b8f5baf9e4c64b07129b223f7edcb.png [14b357fefe584b9b894bc88629e72259.png]: https://img-blog.csdnimg.cn/14b357fefe584b9b894bc88629e72259.png [096c2f3cf1af443f94c2e356abbf3100.png]: https://img-blog.csdnimg.cn/096c2f3cf1af443f94c2e356abbf3100.png [0981708ad35247e390aadc462f022ec7.png]: https://img-blog.csdnimg.cn/0981708ad35247e390aadc462f022ec7.png [42035d71496242ae9b51ac0b1d4a3ed5.png]: https://img-blog.csdnimg.cn/42035d71496242ae9b51ac0b1d4a3ed5.png [26995f97bb534e69a463b04d12a066b5.png]: https://img-blog.csdnimg.cn/26995f97bb534e69a463b04d12a066b5.png [0ee99f15742e4da2b3f59d0a367778ea.png]: https://img-blog.csdnimg.cn/0ee99f15742e4da2b3f59d0a367778ea.png
还没有评论,来说两句吧...