初识 Mybatis

Mybaits概述

MyBatis(全称为MyBatis SQL Mapper)是一个开源的持久层(数据访问层 DAO )框架,它简化了与数据库的交互过程。MyBatis 的主要目标是将 SQL 从应用程序代码中分离出来,使得开发人员能够更专注于业务逻辑而不是数据库细节。

MyBatis 通过 XML 或注解的方式来定义 SQL 映射,将 SQL 语句、参数和结果集映射到 Java 对象。它提供了一种简单直观的方式来执行 CRUD(创建、读取、更新和删除)操作,同时也支持高级特性,如动态 SQL 和存储过程调用等。

Mybatis的发展历程

MyBatis 的发展历程可以概括为以下几个阶段:

一、起源与诞生

MyBatis 的前身是 iBatis,一个由 Clinton Begin 在 2002 年发起的开源项目。iBatis 旨在解决 JDBC 编程的繁琐问题,通过 XML 配置文件将 SQL 语句与 Java 对象进行映射,从而简化了数据库操作。

二、iBatis 的发展

随着 Java 技术的不断发展,iBatis 也逐渐得到了广泛的应用和认可。iBatis 社区持续为项目贡献代码和文档,增加了许多实用的功能和优化。在这个阶段,iBatis 已经成为了一个成熟且稳定的持久层框架。

三、迁移至 Google Code

在 2010 年,iBatis 项目从 Apache Software Foundation 迁移到了 Google Code,并继续得到了社区的支持和发展。在 Google Code 上,iBatis 项目吸引了更多的开发者和用户,为后续的改进和扩展奠定了基础。

四、更名为 MyBatis

在 2013 年,iBatis 项目正式更名为 MyBatis,并在同年 11 月迁移到了 GitHub。这一变化标志着 MyBatis 进入了一个新的发展阶段。在 GitHub 上,MyBatis 项目得到了更加广泛的关注和参与,社区规模不断扩大,代码质量也得到了显著提升。

五、MyBatis 的快速发展

自 2013 年以来,MyBatis 经历了快速发展。社区不断推出新的版本和功能,如支持注解配置、动态 SQL、插件机制等,进一步提高了 MyBatis 的易用性和灵活性。同时,MyBatis 也积极与其他 Java 框架(如 Spring)进行集成,为开发者提供了更加便捷的开发体验。

六、MyBatis 的现状和未来

目前,MyBatis 已经成为了一个非常流行和成熟的持久层框架,广泛应用于各种规模的 Java Web 项目中。随着技术的不断发展和需求的不断变化,MyBatis 社区也在不断探索和创新,致力于为用户提供更加优秀的产品和服务。未来,MyBatis 将继续保持其灵活性和易用性,同时加强与其他技术的集成和协作,为开发者提供更加高效、稳定、安全的数据库操作解决方案。

和其它持久化层技术对比

  • JDBC

    • SQL 夹杂在Java代码中耦合度高,导致硬编码内伤
    • 维护不易且实际开发需求中 SQL 有变化,频繁修改的情况多见
    • 代码冗长,开发效率低
  • Hibernate 和 JPA

    • 操作简便,开发效率高
    • 程序中的长难复杂 SQL 需要绕过框架
    • 内部自动生产的 SQL,不容易做特殊优化
    • 基于全映射的全自动框架,大量字段的 POJO 进行部分映射时比较困难。
    • 反射操作太多,导致数据库性能下降
  • MyBatis

    • 轻量级,性能出色
    • SQL 和 Java 编码分开,功能边界清晰。Java代码专注业务、SQL语句专注数据
    • 开发效率稍逊于HIbernate,但是完全能够接受

MyBatis特性

  1. MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
  2. MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
  3. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录
  4. MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架
  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值