初尝Mybatis有感

  

    在学校的时候和实习的时候, 自己学的是Hibernate, 但在第一个公司使用的是Mybatis(原名为ibatis,迁移到Google Code后改之),于是乎就开始学下Mybatis。


    到现在也用了几个月了, 感觉ORM框架都差不多, 至少重基本的使用上来说, 当成工具来用学习成本不高, 熟悉一周左右就能开始写了。在使用过程中感觉中文的文档或者答案时间都不是太新, 所以参看官方的Doc了。 

    Mybatis 文档官网:http://mybatis.github.io/mybatis-3/


    从个人使用上来说,Mybatis有一点我特别喜欢, 那就是面向结果的查询方式, 不管你的表结构是1:1还是1:n, 只要你最终所需要获得的结果是1:1那么在写映射ResultMap的时候就按结果1:1来写,感觉很方便。

    而且Mybatis官网比Hibernate好看很多, 特别简洁, 它的在github pages也是简洁到不行(这个是用Jekyll这个语言开发者的一个模版), 个人是非常喜欢这种风格。 


    那么从更别人客观的方面来看Mybatis和Hibernate的优劣:

   两者相同点

  • HibernateMyBatis都可以是通过SessionFactoryBuiderXML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuiderSessionFactorySession的生命周期都是差不多的。
  • HibernateMyBatis都支持JDBCJTA事务处理。

   Mybatis优势

  • MyBatis可以进行更为细致的SQL优化(但是自己得写大量的SQL语句,不过用它的Dynamic SQL确实灵活),可以减少查询字段(Hibernate也行,就是这样就破坏了Hibernate用HQL的方便)。
  • MyBatis相对容易使用(官网文档没几页,只要熟悉所使用数据库的语言),而Hibernate学习成本高挺多的。
  • Mybatis有直接的SQL语句可见(分析大表相关的所有select语句),对存储数记录较大的800W条之类的需要分库分表的情况,会比Hibernate来的方便些。

Hibernate优势

  • HibernateDAO(或者交DAL)层开发比MyBatis简单,Mybatis需要写ModelMapper.xml( 大量SQL语句和映射[如果关联查询的话] ,改起代码来还真是比Hibernate慢很多)
  • Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便(Mybatis改个需求要改好多东西)。
  • Hibernate数据库移植性很好(用HQL不用熟悉SQL语句都能写,如一个save就保存了),MyBatis的数据库移植性不好
  • Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值