尚学堂•百战程序员之MyBatis总结

尚学堂•百战程序员之MyBatis总结
2018年04月17日 09:10 独一无二的楠竹

1.MyBatis简介

1.1传统JDBC

传统JDBC编程主要分以下步骤:

(1)连接数据库,注册驱动和数据库信息;

(2)操作Connection,打开Statement对象;

(3)通过Statement执行SQL,返回结果集到ResultSet对象;

(4)读取ResultSet中的数据,通过代码转化成POJO对象;

(5)关闭数据库资源

弊端:(1)工作量大,连接数据库、操作JDBC底层事务、处理数据类型、操作Connection、Statement、ResultSet对象才能拿到数据、还要准确关闭数据库资源;(2)对可能产生的异常要进行捕捉处理并正确关闭资源。

1.2 ORM模型

ORM即对象关系映射模型,主要解决关系型数据库数据与Java对象的互相映射,通过这层关系可以简单快速地把数据库数据转化成POJO,使程序员更方便开发Java程序。有了ORM,开发者不必去深入关心数据库相关只是,通过映射配置即可获得数据库数据即POJO。

1.3 Hibernate

Hibernate基于ORM模型,对JDBC进行了很大程度的封装,提供了一种全表映射模型,将POJO通过配置文件XML配置规则映射到数据库表上,即可以直接用POJO操作数据的数据。

Hibernate优势:

(1)消除了代码的映射规则,它被全部分离到XML或注解里进行配置;

(2)无需管理数据库连接,配置在XML里面

(3)一个会话,不要操作多个对象(JDBC里的Connection,Statement,ResultSet),只需要操作Session即可。

(4)关闭资源自需要关闭Session即可

(5)Hibernate还提供级联、缓存、映射一对多等功能

HIbernate缺点:

(1)全表映射带来的不便,比如更新时需要发送所有的字段。

(2)无法根据不同的条件组装不同的SQL

(3)对多表关联和复杂SQL,需要自己写SQL,返回后,需要自己将数据成POJO;

(4)不能有效支持存储过程;

(5)虽然有HQL,但性能较差,比如大型互联网系统往往需要性能优化,Hibernate往往做不到。

1.4 MyBtais

半自动映射框架,因为MyBatis需要手动匹配提供POJO、SQL和映射关系,Hibernate只需要提供POJO和映射关系。

作者文章

新浪首页 语音播报 相关新闻 返回顶部