mybatis属于什么框架 SpringData JPA也能写sql,为什么还要用mybatis?
SpringData JPA也能写sql,为什么还要用mybatis?
在头条上问这个问题真是太醉了。。顺便说一句,胡说八道太多了。
国内设计理念为表驱动。总之,逻辑是由数据表决定的,实现是由模型来完成的。事实上,这与面向对象的思想截然相反。大多数工程师手中所谓的mybatis的灵活性是,他们不需要考虑如何设计模型。”不管怎样,我可以用原生SQL来解决这个问题。模型设计太差了,只能靠SQL来修正。JPA是完全对象驱动的思想。早期设计的缺陷会制约后续的开发,不同的数据库可以用不同的方式实现(事实上,即使redis也是一样的)。回答一些常见的问题。
1. JPA表的连接行为具有不确定性和难以控制性。
您确定使用了spring数据JPA吗?不知道有实体图吗?当一个傻瓜达到这个水平时,他能做什么。
2. JPA子查询不容易实现。
我想你没用过,是吗?spring数据JPA的子查询不仅可以单独定义视图,还可以进行子查询,甚至可以直接使用jpql。
3. JPA不容易优化。
我真的不相信99%的优化能超过spring data JPA的优化。特别是,普通程序员能否停止谈论优化?他们甚至搞不懂MySQL的锁。表设计就像一堆废话,他们仍然每天使用原生SQL。你觉得他们很棒吗?JPA可以将表属性反映到对象。当然,运行时优化是有基础的。ORM的发展空间太大了。任何有点技术知识的人都知道ORM将拥有越来越多的优势。有一点经验的程序员都知道,在谈论其他人之前,是时候先谈论良好的维护了。解决性能问题的方法太多了。
最后,难道你不知道ORM cqrs现在是提倡的吗?请问,有没有什么复杂的问题没有原生SQL的介入是无法解决的。
mybatis的优点?
1. 简单的优点:易学、易用,通过文档和源代码,可以完全掌握其设计思想和实现。实用性:提供数据映射功能和底层数据访问的封装(如ado.net),提供了Dao框架,使我们更容易开发和配置DAL层。灵活性:通过SQL,我们基本上可以实现不使用数据访问框架就能实现的所有功能,也许更多。功能完整性:提供连接管理、缓存支持、线程支持、(分布式)事物管理,通过配置关系对象映射等数据访问层需要解决的问题。它提供Dao支持并将其封装在Dao框架中ADO.NET,NHibernate和datamapper。增强系统的可维护性:通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统设计更加清晰,易于维护,易于单元测试。SQL与代码的分离提高了可维护性。
2. 缺点:没有明确的支持。净值2.0。最新版本可以在2.0下编译,但有些单元测试失败。不成熟的,较少的工程实践:IBATISNET在实际项目中使用较少。这只是理论上可行的。半ORM,更少的工具支持:我们需要自己编写SQL,而且我们还没有找到一个工具可以在下面自动生成业务层类和配置文件。Net,它不同于NHibernate。NHibernate将直接为我们的数据库生成SQL,并且有一些辅助工具。所以使用ibatis比使用NHibernate做的更多。
想学mybatis,我需要先详细看看jdbc吗?
首先了解mybatis,然后了解JDBC。
Mybatis是java开发中常用的持久性框架。本质上,它是JDBC的封装。它封装了大量繁琐而冗余的过程,如注册驱动程序、创建连接、异常回滚、关闭连接等。开发人员只需要关注SQL本身,这大大提高了生产率。
首先学习简单易用的mybatis框架。当你能熟练地使用mybatis时,你自然会接触到更多的应用场景。根据实际需要学习JDBC会事半功倍。
例如,您会发现mybatis不能很好地支持大规模操作的业务场景,但是JDBC更适合这种场景。您可能想知道为什么JDBC更好地支持大规模操作?此时,您将自然地了解更多关于JDBC的信息。
学习是一个需要不断积极反馈的过程。你一上来就很难学。很容易打击你的自信,但这是不值得的损失。
因此,我建议您首先在实践中学习如何使用mybatis框架和项目;当业务需要使用JDBC时,您自然会对JDBC有更多的了解,而且您不必一开始就强制使用。
mybatis属于什么框架 简述mybatis框架 mybatis优势
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。