MyBatis_1

来源:互联网 发布:远程教育软件哪家好 编辑:程序博客网 时间:2024/06/06 09:12

传统的JDBC步骤

  • 连接数据库,注册驱动和数据库信息
  • 操作Connection,打开Statement对象
  • 通过Statement执行SQL,返回结果到ResultSet对象
  • 使用ResultSet读取数据,然后通过代码转化为具体的POJO对象
  • 关闭数据库相关资源

 

以上差不多就是传统JDBC的操作步骤,它存在一些弊端:

  1. 工作量相对较大

先连接,然后处理JDBC底层事务,处理数据类型,还需操作Connection对象,Statement对象和ResultSet对象去拿数据。

 

  1. 需要对JDBC编程可能产生的异常进行捕获处理并正确的关闭连接

 

为了简化数据库操作ORM模型出现...

 

ORM:数据库的表和简单Java对象的映射关系模型。

 

后面不在引申,直接看重点吧...

 

什么是MyBatis?

MyBatis是支持定制化 SQL存储过程以及高级映射的优秀的持久层框架。

MyBatis避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

MyBatis可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

 

 

MyBatis Hibernate

  1. 开发速度
    1. Hibernate真正掌握要比MyBatis困难 , 而且HibernateMyBatis更加重量级
    2. MyBatis相对简单,上手快,但相对简陋

 

  1. 开发工作量
    1. MyBatis需要手动编写SQL语句 , 可以按照需求操作指定字段 ,提高程序的效率.
    2. Hibernate也可以通过写SQL语句操作指定字段,但这样破坏了Hibernate的封装以及简洁性.

 

  1. 移植性 /扩展性
    1. Hibernate与具体数据库的关联只需在XML中配置即可,所有的HQL语句与具体使用的数据库无关 , 移植性好
    2. MyBatis项目中的SQL语句都是依赖所用数据库的 , 所以移植性/扩展性较差.

 

  1. 优势对比
    1. MyBatis
      1. 可以进行更为细致的SQL优化,减少操作字段
      2. 容易掌握,Hibernate门槛较高
      3. 小巧、方便、高效、简单、直接、半自动化

 

  1. Hibernate
    1. DAO层开发相对MyBatis简单,MyBatis需要维护SQL和结果映射.
    2. Hibernate对对象的维护和缓存要比MyBatis,对增删查改的对象维护更方便.
    3. Hibernate移植性好,MyBatis移植性不好,不同的数据库需要写不同的SQL.
    4. Hibernate有更好的二级缓存机制,可以使用第三方缓存,MyBatis本身提供的缓存机制不佳.
    5. 强大、方便、高效、复杂、间接、全自动化

 

  1. Hibernate的缺点
    1. 全表映射不方便,比如更新时需要发送所有的字段
    2. 无法根据不同的条件组装不同的SQL
    3. 对多表关联和复杂SQL查询支持较差.
    4. 不能支持有效存储过程
    5. 虽然有HQL,但是性能差,大型互联网系统往往需要优化SQL,Hibernate做不到.

 


参考 :http://www.mybatis.org/mybatis-3/zh/index.html

  http://blog.csdn.net/jiuqiyuliang/article/details/45378065

  https://www.zhihu.com/question/21104468

  <深入浅出MyBatis技术原理与实战>


写在最后,这篇文章以及后续的MyBatis学习笔记文章,都是在阅读<深入浅出MyBatis技术原理与实战>一书,或网上其他有关MyBatis资料中整理的。

后续不在标注内容出处.....

0 0
原创粉丝点击