`

【摘】MyBatis在ORM中的自我认识

阅读更多

   "MyBatis" 的原型是 "ibatis" ,是ibatis的升级版本,是一个由Clinton Begin在2001年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。

      在ORM解决方案的体系中,相对于Hibernate和Apache OJB 等一站式“全自动化”映射体系,MyBatis是一种定位于前者和JDBC之间的 “半自动化”的ORM实现。

      所谓“半自动”,可能理解上有点生涩。纵观目前主流的 ORM,无论 Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从 POJO 到数据库表的全套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 Hibernate或者 OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行。
  大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。 在笔者的系统咨询工作过程中,常常遇到以下情况:
  1. 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。
  2. 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定)
  3. 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。 面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用,奈何?恍惚之际,只好再摸出JDBC 准备拼死一搏……,说得未免有些凄凉,直接使用 JDBC进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码,乏味的字段读取操作,令人厌烦。
  “半自动化”的Mybatis,却刚好解决了这个问题。

分享到:
评论

相关推荐

    jar包---Mybatis、ORM.rar

    Mybatis和ORM(Object-Relational Mapping)是Java开发中两个重要的概念,它们在软件工程中扮演着数据访问层的角色,极大地简化了数据库操作。这个名为"jar包---Mybatis、ORM.rar"的压缩文件包含了学习这两个技术所...

    01MyBatis之ORM思想.md

    01MyBatis之ORM思想.md

    mybatis ORM 自动生成工具

    使用MyBatis ORM自动生成工具,开发者可以快速构建与数据库交互的基础架构,从而更快地投入到业务逻辑的开发中。这样的工具也便于项目维护,因为当数据库表结构发生变化时,只需要更新配置并重新运行生成脚本,就能...

    一款基于mybatis的ORM框架,非常强大,非常好用,不信的来试试,2024年超级优秀的ORM!!!

    一款基于mybatis的ORM框架,非常强大,非常好用,不信的来试试,2024年超级优秀的ORM!!!

    MyBatis 官方笔记 + MyBatis 3.5.10 官方英文文档

    在 MyBatis 3.5.10 版本中,我们能够看到许多优化和改进,使得开发更为便捷和高效。下面将详细探讨 MyBatis 的核心概念和功能,以及 3.5.10 版本的特性。 1. **配置与环境搭建** - **mybatis-config.xml**:...

    基于Java的MyBatis 2023 ORM持久层框架设计源码

    该项目为基于Java语言的MyBatis ORM持久层框架2023版本设计源码,包含148个文件,涵盖64个Java源文件、41个XML配置文件、34个PNG图片文件、4个属性文件、1个Git忽略文件、1个Markdown文件、1个PDF文件、1个YAML文件...

    easy-orm 基于MyBatis动态ORM实现的通用增删改查框架

    不用写任何代码,就可以对表完成增删改查; 一套API支持对所有表的增删改查CRUD操作;...基于Spring Boot + Mybatis实现的通用增删改查服务API; 该模块提供了通用的数据库DDL操作接口和通用的业务数据表CRUD操作。

    EasyOrm:这是一个模拟Hibernate和MyBatis的简单orm框架

    在EasyOrm中,你可以找到类似于Hibernate的注解或XML配置方式来定义数据模型和映射关系。例如,你可以使用`@Entity`注解来标记一个Java类为数据库表的实体,用`@Table`指定对应的表名,`@Column`用于指定字段与列的...

    MyBatis3官方中文文档

    首先,MyBatis的入门安装很简单,对于使用Maven构建项目的用户来说,只需在pom.xml文件中加入指定版本的mybatis依赖即可。而对于不使用Maven的用户,则需要将mybatis的jar包放置在项目的classpath中。这个过程是...

    ORM框架之Mybatis

    MyBatis,作为一款流行的Java ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑代码紧密结合,简化了传统SQL编程的繁琐过程。本文将深入探讨MyBatis的核心概念、主要功能以及如何使用它来提升开发效率...

    手写简易版ORM框架(仿mybatis)

    4. **会话管理**:在ORM中,会话(Session)通常用来管理一系列的数据库操作,例如开启事务、提交事务、回滚事务等。你可能实现了一个简单的会话接口或类,供用户进行数据库操作。 5. **结果集映射**:框架需要能够...

    mybatis中文离线文档

    11. **MyBatis与Spring的整合**:在实际项目中,MyBatis通常与Spring框架结合使用,通过Spring的事务管理、依赖注入等功能,可以使MyBatis的使用更加简便。 以上只是MyBatis框架的一部分关键知识点,完整的中文离线...

    03第一天-mybatis-mybatis入门-ORM的认识.mp4

    MyBatis的前身就是iBatis , MyBatis使用XML描述符或注释将对象与存储过程或SQL语句耦合,将关系数据库与面向对象应用程序结合使用变得更加容易。支持定制化SQL、存储过程以及高级映射。

    mybatis_3.5.9官方中文文档pdf

    MyBatis 的 XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager): ``` <!DOCTYPE configuration ...

    Mybatis讲义

    - **MyBatis 与 ORM**的关系:MyBatis 实现了 Relation 到 Object 的映射,即从数据库中获取数据并将其映射为 Java 对象,因此可以说 MyBatis 是 ORM 思想的一种具体实现方式之一。 #### 三、MyBatis 与 Hibernate ...

    mybatis的中文api文档

    MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。MyBatis的其他语言版本包括英语、西班牙语、日语和韩语,以及简体中文。 ...

    mybatis帮助文档-中文

    MyBatis是一个优秀的持久层...总之,MyBatis作为一个轻量级的ORM框架,通过简洁的API设计和灵活的SQL构建机制,大大简化了Java开发中的数据库操作,同时又保留了对SQL的直接控制,使得开发者能够充分发挥SQL的威力。

    基于MyBatis Plus等ORM框架的Java数据翻译插件设计源码

    该项目为easy trans数据翻译插件设计源码,采用Java语言开发,集成了MyBatis Plus、JPA和Beetsql等ORM框架,包含112个文件,涵盖74个Java源文件、11个XML配置文件、7个工厂类文件和3个Git忽略文件等。此插件旨在简化...

    mybatis-spring中文文档

    在MyBatis-Spring的开发背景中,由于Spring 3.0仅仅支持iBatis2版本,而MyBatis社区希望将MyBatis3的支持添加到Spring3.0中,但由于Spring3.0的开发结束在MyBatis3.0官方发布之前,Spring官方无法发布基于非发布版的...

    Mybatis帮助文档和jar包.zip

    Mybatis的一个强大特性是其支持动态SQL,开发者可以在XML映射文件中编写条件语句,根据运行时的条件动态生成SQL,极大地提高了灵活性。 6. **Mapper接口** Mybatis的Mapper接口使得开发者可以以面向对象的方式...

Global site tag (gtag.js) - Google Analytics