首页 > 编程知识 正文

java spring,elasticsearch数据类型

时间:2023-05-05 00:32:21 阅读:146734 作者:2547

在Java企业平台开发任务中,持久层框架的选择,Mybatis和Hibernate占有一定的市场。 在大趋势下,传统企业喜欢Hibernate,互联网喜欢Mybatis。 今天的大数据基础共享将对Mybatis和Hibernate这两个框架进行简单的比较分析。

一、关于MybatisMyBatis是Apache的开源项目iBatis,2010年迁移到谷歌代码,改名为MyBatis,然后以MyBatis的名字固定,2013年11月在GGE

MyBatis是一个很好的基于Java的持久层框架,内部封装了JDBC,因此开发人员只需要关注SQL语句本身,而无需在加载驱动程序、创建连接和创建语句等复杂过程中花费精力

特别是,Mybatis支持自定义SQL、存储过程和高级映射,几乎避免了手动设置所有JDBC代码和参数以及检索结果集。

MyBatis可以使用简单的XML或注释将本机类型、接口和Java的POJO(plainoldJavaobjects,常见的旧Java对象)配置为数据库中的记录

二、关于HibernateHibernate也是一个同样优秀的持久层框架,来自sf.net,现在成为Jboss的一部分。 作为o/r映射框架,Hibernate经常与Mybatis进行比较。

Hibernate更完整地封装了数据库结构,Hibernate的o/r映射提供了POJO与数据库表之间的映射,以及SQL的自动生成和执行。 在许多情况下,开发人员只需定义POJO与数据库表之间的映射关系,就可以通过Hibernate提供的方式完成持久层操作。 另外,也不需要熟练掌握SQL。 Hibernate/OJB会根据创建的存储逻辑自动生成相应的SQL,并调用JDBC接口运行。

三、MyBatis和Hibernate的对比MyBatis和Hibernate都是对象关系映射(ORM )框架,都是用于数据持久化的框架技术,JDBC的两者的区别存在于多方面:

1.Hibernate是全自动,而MyBatis是半自动

Hibernate可以完全自动生成SQL。 MyBatis只有基本的字段映射,仍然需要用手写SQL来实现和管理。

2.Hibernate编码量小会减少开发周期,MyBatis编码量大会拖慢开发周期

Hibernate是JDBC的高级封装,几乎不需要编写SQL。 开发时,开发周期会降低。 MyBatis需要自己写SQL,编码量大,开发周期慢。

3.Hibernate数据库移植性远大于MyBatis

Hibernate强大的映射结构和HQL语言大大降低了对象与数据库(oracle、mySQL等)的结合性,但MyBatis需要手写SQL,因此可移植性也大大降低,成本高昂

4.MyBatis入门简单,Hibernate入门比较难

MyBatis入门很简单,很快就能学习。 Hibernate学习门槛高、门槛更高,要了解如何设计O/R映射、如何在性能和对象模型之间取得平衡,以及如何更好地使用Hibernate,请参阅开发人员

5.SQL直接优化上,MyBatis要比Hibernate方便很多

因为MyBatis的所有SQL都是写在xml中的,所以优化SQL比Hibernate方便多了。 另一方面,Hibernate的SQL大多是自动生成的,无法直接维护SQL; 总之,在写SQL的灵活性上,Hibernate比不上MyBatis。

四、MyBatis和Hibernate选哪个?在实际开发任务中,持久层框架的选择不仅要考虑它们的特性和性能,而且要根据项目的需要考虑哪个更适合项目开发。

举个简单的例子,一个项目中很少使用复杂的查询。 只是单纯的追加、删除、重新评估。 这样可以加快选择Hibernate的速度。 因为基本的SQL语句已经封装,所以可以节省时间和提高效率。 在大型项目中,有很多复杂的语句,因此选择MyBatis比较好。 此外,SQL语句的管理也很简单。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。