MyBatis入门

  1. 概要

    MyBatis。是一个基于SQL映射支持Java和·NET的持久层框架。ORM映射框 Hibernate(一站式),Apache OJB(一站式)Mybatis(半自动)。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.

           相对 Hibernate 和 Apache OJB 等“一站式”ORM 解决方案而言,ibatis 是一种“半自动化”的 ORM 实现。所谓“半自动” ,可能理解上有点生涩。纵观目前主流的 ORM,无论 Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从 POJO 到数         据库表的全套映射机制。 程序员往往只需定义好了 POJO 到数据库表的映射关系, 即可通过 Hibernate或者 OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握,Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行。

             大多数情况下(特别是对新项目,新系统的开发而言) ,这样的机制无往不利,大有一统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。

        在笔者的系统咨询工作过程中,常常遇到以下情况:

            1.  系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条 Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。

            2.  开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)

            3.  系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的 SQL 语句(或存储过程)才能达到系统性能设计指标。 直接使用 JDBC进行数据库操作实际上也是不错的选择, 只是拖沓的数据库访问代码, 乏味的字段读取操作令人厌烦。

       全自动化POJO和数据之间的映射以及SQL语句的自动生成和执行,ibatis在于 POJO 与 SQL 之间的映射关系。 也就是说, ibatis并不会为程序员在运行期自动生成 SQL 执行

 ORM(Object Relational Mapping)工具

    无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:
    1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.
    2. 由sessionfactory  产生 session
    3. 在session 中完成对数据的增删改查和事务提交等.
    4. 在用完之后关闭session 。

       5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

           MyBatis入门

凡是使用ORM框架效率性能都会比JDBC差些。

2、与JDBC的区别

    1、JDBC释放资源的写法很容易出错,使用框架后这个问题就基本不存在了。即使用JDBC,一般也要封装一个Util类来处理,如Srping的JDBC Template,否则每个SQL语句外面包一大坨try/catch语句太麻烦了。
    2、对于常见的多个选择参数的查询页面,使用mybatis的标签很容易处理多个参数组合使用的情况,相比较写JDBC的拼接字符串要容易。
    3、如果项目中使用的是java的实体类,使用Mybatis可以方便的实现数据库行和对象的映射,手工写JDBC的话这部分的代码量会比较大,而且重复性很高。



        

你可能感兴趣的:(MyBatis入门)