MyBatis 好用吗?是应用系统开发唯一的选择吗?

ObjectiveSql 发布于 10/13 22:14
阅读 2K+
收藏 0

我是的经历比较复杂,2007前写过Java,2007 至2016年写了Ruby,C,Python,2017年又回到了Java,用了MyBatis,Flyway,SpringBoot,发现用了之前特别不舒服,所以做了ObjectiveSQL 项目,想听听大家的意见。

以下是问题补充:

@ObjectiveSql:新事物的出现,必定会遭遇各种老事物的抵触,一步一步,我会坚强的走下去。 (10/14 10:14)
加载中
5
前端大师傅
前端大师傅

感觉楼上都只会用完全没说到重点,mybatis并不是什么所谓团队开发或jpa不适合这类。很难想象程序员会说出这种不专业的话,mybatis作为orm框架区别于其它可以连数据库的工具类最重要的是三点:

1.缓存机制、mybatis支持多种缓存策略,而缓存的作用就是在select大量数据时缓存一部分到内存中不必去频繁显示交互数据库。

2.与数据库之间无显示操作,减少如干净存储的问题,即实体对象为干净数据调用save方法并不会执行update命令去操作数据库,只有为脏对象时才去update交互等诸如此类问题。

3.屏蔽线程交互问题,让数据操作与业务逻辑层分离,打比方操作百万级数据时,会将业务类调用,被调用数据操作类作线程分离。有执行结果时调用类实现接口返回,这时由于操作数据类与调用类不在一个线程返回的数据的接口方法存在跨线程交互。ORM框架已经可以帮你处理无须担心异步处理导致的数据安全问题。

这些问题在用JPA时都需要自己去解决。所以最好还是使用一个orm框架如mybatis。本人05年时就开始用hibernate后来用ibatis。对orm的框架还是了解一些。

ObjectiveSql
ObjectiveSql
分析的很透彻,兄弟和我的经历应该差不多,我解释一下: 1)应用系统里,业务逻辑和数据访问是通常一个整体,是否需要分离没有统一的原则,也不能一刀切的方式解决,具体需要由系统设计所决定; 2)ObjectiveSQL 的缓存可以参考:http://www.objsql.com/docs/demo/redis_cache/ 这篇文章 3)多线程是另外的领域了。 4)事务和关联关系也应该是重点要解决的。
4
魔法王者安琪拉
魔法王者安琪拉

看你这玩法有点充血模型的味到,以前用过JFinal的ActiveRecord,和你这做法有点类似,以前写短平快项目时写的很舒服,遇到那种业务复杂的场景这种写法的时候就感觉很不爽了,所以最终还是倾向于mybatis,单表操作的基于SqlProvider的封装完全可以减掉你建起来的所谓优势的地方

ObjectiveSql
ObjectiveSql
无论是充血还贫血模型,只是设计层的概念,我的理念是如何使代码变得简洁、易读,大家都提到JFinal,后期我出一个ObjectiveSQL 与JFinal 的对比。 的确很多ORM 框架遇到复杂SQL 的时候都会束手无策,ObjectiveSQL 已经有了解决方案,只是还不成熟,后续会推出复杂SQL 的解决方案
4
没有脖子bogy
没有脖子bogy

门槛低,大公司里面频繁更改业务,以及无聊又必要的各项评审;都下里巴人

ObjectiveSql
ObjectiveSql
回复 @xflcx1991 : 有问题及时沟通,大家一起共同努力
xflcx1991
xflcx1991
回复 @ObjectiveSql : 是的,我只是抖个机灵。还是要仔细看看 ObjectiveSQL 才有发言权。
ObjectiveSql
ObjectiveSql
回复 @xflcx1991 : ObjectiveSQL 是我使用了数十种ORM 工具后沉淀出的,每种ORM 框架都有自身的优缺点。
ObjectiveSql
ObjectiveSql
回复 @xflcx1991 : 原理是一样的,软件科学里的实际需求的易变性的解决是一个研究的重要课题,那是理论的研究,我们是从实际出发,结合理论,制造工具的方式解决实际问题。
xflcx1991
xflcx1991
回复 @ObjectiveSql : 数学界的难题解决了也拿不到诺贝尔奖,因为诺贝尔奖没有数学奖。
下一页
2
忘记穿内裤
忘记穿内裤
mybatis,jpa都用过,个人觉得jpa工作效率比较高,mybatis可能更容易入门,基于木桶效应,那么对于团队来说首选估计就是mybatis了。
1
SpringBoot中文社区
SpringBoot中文社区

自从用了jpa + querydsl,再也没用过Mybatis

1
子方朔-Carl
子方朔-Carl

jpa也好,mybatis也好,都需要定义大量的接口。看了objectiveSQL,无需定义任何接口,继承任何类,一方面代码更加整洁,逻辑也更加清晰, 另一方面也更容易调试。还有国内可能跟风严重,导致大家都是ssm这一套东西,国外其实使用jpa等其他ORM框架的人其实不少。

0
ObjectiveSql
ObjectiveSql

是的,这也是我项目进展的困难点之一,早期的SpringBoot 和mybatis 也花费了好多年才超越Structs 和Hibernate 的,对于我坚持的信念也就是ObjectiveSQL 真正的解决了MyBatis 的一些问题,相信最终会被人所接受。

0
熏红基
熏红基

用mybatis-plus,好用。

ObjectiveSql
ObjectiveSql
打破习惯,需要漫长的过程,SpringBoot 花了好多年才把Structs 干掉,而且还是Structs 主动承认的漏洞,ObjectiveSQL 需要一段过程才能改变很多人的习惯。
0
sprouting
sprouting

Hibernate 快是快,但有些操作不可控, 特别是复杂的SQL查询, Hibernate 虽然支持原生SQL,但是没mybatis好用,mybatis搭配上 mybatis-plus 后,不比hibernate开发慢,而且可控。还有就是hibernate存在一个,我明明想执行某个语句,但是他却执行了三条其他的语句才实现

0
冰霜之卅ya
冰霜之卅ya

打广告的。。。  你这种这种方式在jfinal里也见过。

返回顶部
顶部