MyBatis框架一

本文对比分析了Hibernate、MyBatis和MiniDao三种ORM框架的特点和适用场景。Hibernate适合对性能要求不高的系统,如管理系统和ERP;MyBatis适用于性能要求高、响应快的系统;MiniDao结合了两者的优势,具有零配置、自动生成SQL语句、支持脚本语言等特性,SQL性能优于MyBatis。

老规矩先说说Hibernate

当然也可以用代码

 Hibernate的配置不需要接口和SQL,相反 My Batis是需要的。对于 Hibernate而言,不需要编写大量的SQL,就可以完全映射,同时提供了日志、缓存、级联(级联比 My Batis强大)等特性,此外还提供HQL( Hibernate Query Language)对POJO进行操作,使用十分方便,但是它也有致命的缺陷。

由于无须SQL,当多表关联超过3个的时候,通过 Hibernate的级联会造成太多性能的丢失;又或者我现在访问一个财务的表,然后它会关联财产信息表,财产又分为机械、原料等,显然机械和原料的字段是不一样的,这样关联字段只能根据特定的条件变化而变化

而 Hibernate无法支持这样的变化,遇到存储过程, Hibernate只能作罢。更为关键的是性能,

在管理系统的时代,对于性能的要求不是那么苛刻,但是在互联网时代性能就是系统的根本,响应过慢就会丧失客户,试想一下谁会去用一个经常需要等待超过10秒以上的应用。以上的问题 My Batis都可以解决, MyBatis可以自由书写SOL、支持动态SQL、处理

列表、动态生成表名、支持存储过程。这样就可以灵活地定义查询语句,满足各类需求和性能优化的需要,这些在互联网系统中是十分重要的

但 My Batis也有缺陷。

首先,它要编写SQL和映射规则,其工作量稍微大于 Hibernate

其次,它支持的工具也很有限,不能像 Hibernate那样有许多的插件可以帮助生成映射代码和关联关系,而即使使用生成工具,往往也需要开发者进一步简化, My Batis通过手工编码,工作量相对大些。

所以对于性能要求不太苛刻的系统,比如管理系统、ERP等推荐使用 Hibernate;而对于性能要求高、响应快、灵活的系统则推荐使用 MyBatis

说说miniDao

与mybatis对比

相同点:SQL语句和java代码的分离

不同点:

  •   O/R mapping不用设置xml,零配置,简单易用
  •   可以自动生成SQL语句
  •   接口和实现分离,不用写持久层代码,用户只需写接口,以及某些接口方法对应的SQL。它会通过AOP自动生成实现类
  •   支持与hibernate轻量级无缝集成
  •   SQL支持更强大的脚本语言,可以写逻辑处理
  •   Sql 性能优于Mybatis
  •   Sql支持传递多个参数Map/Object/List/包装类型都可以
        Mybatis只支持一个参数<Map/Object>? 应该不止吧。。。以后验证

--------------------- 

MiniDao是Jeecg自己的持久化解决方案,集成Hibernate实体维护和Mybaits SQL分离的两大优点。具有以下特征 

l   O/R mapping不用设置xml,零配置便于维护

l   不需要了解JDBC的知识

l   SQL语句和java代码的分离

l   可以自动生成SQL语句

l   接口和实现分离,不用写持久层代码,用户只需写接口,以及某些接口方法

l   对应的SQL。它会通过AOP自动生成实现类

l   支持自动事务处理和手动事务处理

l   支持与hibernate轻量级无缝集成

l   MiniDao整合Hibernate+mybatis的两大优势,支持实体维护和SQL分离SQL支持脚本语言

l   Sql 性能优于Mybatis
※向下兼容Hibernate实体维护方式,实体的增删改查SQL自动生成
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值