前言
MP 从出现就一直有争议 感觉一直 都存在两种声音
like:
很方便啊 通过函数自动拼接Sql 不需要去XML 再去使用标签 之前一分钟写好的Sql 现在一秒钟就能写好 简直不要太方便
dislike:
侵入Service层 不好维护 可读性差 代码耦合 效率不行 sql优化比较难
之前也有前辈说少用MP 理由就是不好维护 但是这个东西真的是方便 只要不是强制不让用 就还是会去使用 存在集合里 最近也确实有一些体会 就从两个角度去看一下MP
优点
操作简洁
就从我们编码中最常用的增删改查去说
按照我们之前去使用Mybatis的喜欢我们就要去建立一个XML文件 去编写Sql语句 算是半自动 我们可以直接去操控Sql语句 但是会比较麻烦 很多简单的数据查询我们都要去写一个标签 感觉这种没有意义的操作还是比较烦的 那么MP里面怎么实现
第一种:最简单我们就是直接去使用提供的方法 我们非常简单就能做到这些操作 但是这个就有一个问题
nodeMapper.selectById(1);
nodeMapper.deleteById(2);
nodeMapper.updateById(new Node());
nodeMapper.insert(new Node());
维护性差
以查询为例 这个默认提供的方法都是查询所有字段我们都知道在编写Sql的时候第一条优化准则就是不要使用Select * 因为这种写法是很Low
这个就是上面selectById
执行的结果
SELECT Id,name,pid FROM node WHERE Id=?
这种Sql 肯定是不好的所以我们在使用MP的时候尽量不要去使用自带的快捷查询 我们可以去使用它里面的构造器
<