请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我怎么感觉反过来使用Spring Data JPA方便些呢?

Mybatis好麻烦,而且是SQL转代码;

用JPA的方式的话,@Entity注解domain,配置generate-ddl: true,就变成代码转SQL自动创表;
继承JpaRepository接口也可以根据方法名执行sql语句,不用那么多配置写SQL。

在开发上会不会更方便些?

正在回答 回答被采纳积分+3

2回答

甲蛙 2023-03-22 13:40:12

项目中选择Mybatis主要有两大原因:

  1.  在国内环境里,主流持久层还是Mybatis,这个可以通过百度指数看出来,所以讲解Mybatis更有利于就业

    https://img1.sycdn.imooc.com//szimg/641a92b10961552c17720727.jpg

  2. 一般项目的开发流程是,先设计好模型,团队评审没问题,再开发代码,所以一般是定好数据库表结构,再生成类,而不是用类来生成数据库,所以我课程里也是按这个步骤,先讲解清楚表结构,再生成代码。

另外,后续章节,我们要做代码生成器,也会用mybatis生成器配置文件,只要一处配置,就可生成前后端代码。

在国内,JPA更适合小项目或个人开发者,企业项目推荐Mybatis,供参考。

2 回复 有任何疑惑可以回复我~
cyper 2023-03-23 13:37:13

generate-ddl:true 是用来 demo 的, 真正做项目不会使用.  mybatis plus和 jpa 一样简单, crud 可写 sql 也可完全不写 sql. 最后 mybatis plus 完全兼容 mybatis 的写法,  当然你还会用上 mybatisx 插件, 因为他自动帮你生成 entiy, mapper, service代码, 你只要写个 controller 后端就完成了.

0 回复 有任何疑惑可以回复我~
  • cyper #1
    大部分项目都用了 mp, 比如知名的ruoyi, pig, ballcat, 我以前 也不用, 后来发现就和 lombok 一样,  一开始你会觉得 set, getter IDE可以自动生成呀. 后来发现简单易维护才是最重要的.  在 xml 中写 自定义的 sql 就行了, 简单的crud 还是不要写在 xml 里了. 并且 mybatisx 可以和 jpa 一样, 根据 findByNameAndAge 帮你生成SQL
    回复 有任何疑惑可以回复我~ 2023-03-23 13:45:25
  • cyper #2
    我还记得以前单用 mybatis 的时候 还要弄个 pagehelper 插件, 还要找相应的 starter. 并且维护他们的版本关系, 最终发现与其添加多个 starter 依赖, 不如添加 唯一的 一个 mybatisplus-starter (已经自带 page helper) 关键是添加了 mp 以后, 现有的 mybatis 代码 不用改依然好用 我就觉得这点很牛逼~
    回复 有任何疑惑可以回复我~ 2023-03-23 13:54:34
  • 甲蛙 回复 cyper #3
    如果同学对mybatis-plus熟,用它也没问题的。mybatis-plus就是对mybatis做了增强。
    在大公司里,特别是支付、金融等领域的公司,对第三方JAR的依赖都是有专门的部门审核才能用,而且版本号也是固定化的,同时也会针对已用的JAR版本做跟踪,如果有漏洞,会要求所有项目作升级。
    mybatis+官方生成器用起来也很快,并不比mp多花多少时间,且生成的代码是原生mybatis,比再引入一个plus风险低。像log4j这么知名的日志框架,在2021年也被报出了重大问题,所以项目用的第三方越多,风险越大。
    这个是我做第三方支付多年养成的习惯:非必要不引入第三方JAR,所以像lombok我也没用,用的IDEA自带生成原生的set get,作为学习项目,用是没问题的。
    
    要不要用第三方依赖,我觉得可以从几个方面来考虑:
    1. 提升开发效率,且无可替代,比如课程用了hutool,因为它确实提供了很多方法,加快我的开发效率,比如雪花算法、JWT等,这些方法在JDK原生包里是没有的。而像mp lombok,我都有替代方案,且风险低。
    2. 提升程序性能,比如在早期版本的JDK,动态代理性能就不如cglib,所以springboot引入了cglib
    3. 功能依赖,你的程序特别依赖某个第三方的功能,比如做一些excel操作、视频音频操作等。
    总之是非必要不用第三方,以上是供参考。
    回复 有任何疑惑可以回复我~ 2023-03-23 17:02:38
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信