我是的经历比较复杂,2007前写过Java,2007 至2016年写了Ruby,C,Python,2017年又回到了Java,用了MyBatis,Flyway,SpringBoot,发现用了之前特别不舒服,所以做了ObjectiveSQL 项目,想听听大家的意见。
我是的经历比较复杂,2007前写过Java,2007 至2016年写了Ruby,C,Python,2017年又回到了Java,用了MyBatis,Flyway,SpringBoot,发现用了之前特别不舒服,所以做了ObjectiveSQL 项目,想听听大家的意见。
感觉楼上都只会用完全没说到重点,mybatis并不是什么所谓团队开发或jpa不适合这类。很难想象程序员会说出这种不专业的话,mybatis作为orm框架区别于其它可以连数据库的工具类最重要的是三点:
1.缓存机制、mybatis支持多种缓存策略,而缓存的作用就是在select大量数据时缓存一部分到内存中不必去频繁显示交互数据库。
2.与数据库之间无显示操作,减少如干净存储的问题,即实体对象为干净数据调用save方法并不会执行update命令去操作数据库,只有为脏对象时才去update交互等诸如此类问题。
3.屏蔽线程交互问题,让数据操作与业务逻辑层分离,打比方操作百万级数据时,会将业务类调用,被调用数据操作类作线程分离。有执行结果时调用类实现接口返回,这时由于操作数据类与调用类不在一个线程返回的数据的接口方法存在跨线程交互。ORM框架已经可以帮你处理无须担心异步处理导致的数据安全问题。
这些问题在用JPA时都需要自己去解决。所以最好还是使用一个orm框架如mybatis。本人05年时就开始用hibernate后来用ibatis。对orm的框架还是了解一些。
看你这玩法有点充血模型的味到,以前用过JFinal的ActiveRecord,和你这做法有点类似,以前写短平快项目时写的很舒服,遇到那种业务复杂的场景这种写法的时候就感觉很不爽了,所以最终还是倾向于mybatis,单表操作的基于SqlProvider的封装完全可以减掉你建起来的所谓优势的地方
门槛低,大公司里面频繁更改业务,以及无聊又必要的各项评审;都下里巴人
自从用了jpa + querydsl,再也没用过Mybatis
jpa也好,mybatis也好,都需要定义大量的接口。看了objectiveSQL,无需定义任何接口,继承任何类,一方面代码更加整洁,逻辑也更加清晰, 另一方面也更容易调试。还有国内可能跟风严重,导致大家都是ssm这一套东西,国外其实使用jpa等其他ORM框架的人其实不少。
是的,这也是我项目进展的困难点之一,早期的SpringBoot 和mybatis 也花费了好多年才超越Structs 和Hibernate 的,对于我坚持的信念也就是ObjectiveSQL 真正的解决了MyBatis 的一些问题,相信最终会被人所接受。
用mybatis-plus,好用。
Hibernate 快是快,但有些操作不可控, 特别是复杂的SQL查询, Hibernate 虽然支持原生SQL,但是没mybatis好用,mybatis搭配上 mybatis-plus 后,不比hibernate开发慢,而且可控。还有就是hibernate存在一个,我明明想执行某个语句,但是他却执行了三条其他的语句才实现
打广告的。。。 你这种这种方式在jfinal里也见过。