Mybatis学习笔记之一:Mybatis介绍 您所在的位置:网站首页 mybatis允许空字段 Mybatis学习笔记之一:Mybatis介绍

Mybatis学习笔记之一:Mybatis介绍

#Mybatis学习笔记之一:Mybatis介绍| 来源: 网络整理| 查看: 265

1、Mybatis的由来

Mybatis前身为Ibatis。ibatis是Internet与abatis的组合,它是由Clinton Begin在2002年发起的一个开源项目,在2010年6月被谷歌托管,更名为Mybatis。

版本更替:ibatis1.x --> ibatis2.x -->mybatis3.x。

2、Mybatis用来做什么?

Mybatis是一个半自动化的基于SQL的ORM(Object-Relation Mapping)持久层框架,支持java和.NET以及Rubby。它在封装了JDBC的基础上与关系型数据库进行交互,可以节省开发时间,节约成本等。它是基于SQL语言的,而SQL语言包含两种语言,DDL和DML。DDL(Data Definetion Language)数据定义语言,其中包括CREATE、DROP以及ALTER这样的语句,这些语句用来定义数据库及其设计。Ibatis并不直接支持DDL,虽然有人通过Ibatis执行了DDL,但并不推荐这么做。SQL包含的第二种语言DML(Data Manipulation Language)数据操纵语言。包括像INSERT、SELECT、UPDATE、DELETE这样直接操纵数据的语句。

3、Mybatis的优势

1)SQL语句与代码分离。使用JDBC操纵数据,会将SQL语句嵌入代码中,且SQL语句换行或过长时有可能出错。但Mybatis代码与SQL语句分离开来。

2)对SQL语句的封装,Mybatis使用XML语言来封装SQL,映射SQL的输入输出。大多数SQL都有1个或多个参数,会产生一堆表格化的数据作为结果。Mybatis允许你将输入输出参数映射为某些对象的特性(property)。如下所示: 3) 动态SQL拼接。在开发过程中,对多条件的查询语句需要在大量条件判断拼接SQL。但mybatis提供了若干特性以支持参数的动态构建查询,如下所示:

4、Mybatis与Hibernate对比

1)Mybatis是半自动化,而Hibernate是自动化。使用Mybatis,代码中用到的所有SQL语句都必须由开发人员编写,而Hibernate可以自动生成SQL语句并执行。相比Hibernate,Mybatis开发工作量大,但Mybatis更加轻量级,所需依赖比Hibernate少的多。

2)移植性。Mybatis使用SQL语句直接与数据库进行交互,所以SQL语句是依赖数据库书写的,而Hibernate的HQL语言不关心具体使用什么数据库(可以在配置中配置数据库方言,是MySQL还是Oracle)。所以相比Hibernate,Mybatis移植性较差。

3)性能问题。如第二点,Mybatis直接使用SQL语句,而Hibernate的HQL语言需要转化为SQL语言才能执行,速度相比Mybatis要慢,且如果使用Hibernate时存在对象关联,Hibernate会慢得多。但Hibernate也可以直接使用SQL语句。

4)缓存。Hibernate提供良好的缓存机制,也可以使用第三方缓存。而Mybatis本身提供的缓存机制不佳。

总结来说:Mybatis 小巧、轻便、高效、简单、直接、半自动化

Hibernate 强大、方便、高效、复杂、间接(直接)、自动化

5、Mybatis的缺点

1)编写SQL工作量大,尤其是字段多、关联表多时。

2)虽说SQL代码与程序代码解耦,SQL放在了配置文件中,方便了修改浏览等,但可读性低,调试困难。

3)编写SQL语句依赖于数据库,不便移植。

4)二级缓存机制不佳。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有