Ibatis与Mybatis的区别—侧重于Ibatis

news/2024/10/20 18:54:36/

目录

一、什么是Ibatis?

1、iBatis是一款轻量级的持久化框架

2、iBatis最大的特点是将SQL语句与Java代码分离

3、iBatis具有以下几个关键组成部分:

二、Ibatis与Mybatis的区别

1、基本信息不同

2、开发时间不同

3、配置方法不同

三、Ibatis与Mybatis的优缺点(根据以上所说做一个总结)

1、iBatis的优点:

        1.1XML映射

        1.2灵活性

        1.3可以手工调整SQL

        1.4数据访问

2、iBatis的缺点:

        2.1学习曲线较陡峭

        2.2缺乏自动化

3、MyBatis的优点:

        3.1简洁和易于阅读

        3.2映射

        3.3设计上的优点

        3.4移植性

4、MyBatis的缺点:

       4.1对初学者不太友好

        4.2可读性问题

        4.3SQL注入问题


一、什么是Ibatis?

1、iBatis是一款轻量级的持久化框架

        实现了Java程序与关系型数据库的绑定。它可以用来简化数据库访问的开发工作,并且能够有效地避免SQL注入等问题,也提高了程序的可维护性和可扩展性。iBatis最初由Apache开发,后来被Google收购并改名为MyBatis。

2、iBatis最大的特点是将SQL语句与Java代码分离

        即通过使用XML映射器将SQL语句与Java代码分离,使得维护和追踪SQL语句变得更加轻松。在iBatis中,您可以使用XML定义SQL查询,并将结果映射到Java对象中。iBatis能够根据需要生成SQL语句,并将生成的SQL语句与查询参数一起发送到数据库中执行。此外,iBatis还提供了事务管理和连接池管理等特性

3、iBatis具有以下几个关键组成部分:

  1. 数据源:数据库连接可以一次性设置,以避免每次访问数据库时创建连接。数据源可以使用基本数据源、连接池数据源等

  2. SqlMapConfig.xml:此文件管理数据库连接、事务、映射器等配置。该文件中也定义了到数据库的连接

  3. 映射器:提供了一种将Java对象映射到数据库表中的机制。

  4. SqlSession:充当持久化操作的工厂,在iBatis中我们使用SqlSession来执行数据库操作

总的来说,iBatis为我们提供了一种非常灵活和方便的方式来处理数据库访问。通过XML映射器我们只需要定义SQL语句和参数即可,而不需要考虑这些SQL都应该在代码中编写,这可以让我们将精力放在业务逻辑上,而不需要花费大量的时间处理数据库操作及SQL语法的问题。

二、Ibatis与Mybatis的区别

1、基本信息不同

mybatis   MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集

MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

ibatis  :iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。

iBATIS 目前提供了三种语言实现的版本,包括:Java、.NET以及Ruby

2、开发时间不同

mybatis:MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

ibatis:iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。

3、配置方法不同

mybatis简化了编码的过程,不需要去写dao的实现类,直接写一个dao的接口,再写一个xml配置文件,整个mybatis就配置好了,也就是数据库就连接好了,然后在service里面直接调用dao就可以了,但是ibatis则不可以,必须要写dao的实现类。mybatis是ibatis的升级版本

三、Ibatis与Mybatis的优缺点(根据以上所说做一个总结)

iBatis与MyBatis两者都是优秀的持久层框架(提了多遍,应该也记住啦!),它们各自都有一些优点和缺点。下面是它们的具体优缺点:

1、iBatis的优点:

        1.1XML映射

它允许用户通过映射器文件定义SQL语句和参数,所以iBatis不会将SQL语句和Java代码混合在一起,从而帮助开发人员轻松创建和维护数据操作

        1.2灵活性

用户可以映射任何表或视图,以及为任何查询选择使用任何SQL语句。这也使得iBatis对于复杂的查询和多表连接等非常适合。

        1.3可以手工调整SQL

iBatis允许开发人员手动调整生成的SQL语句,使开发人员可以对插件进行高级自定义以获得与ORM和JDBC相对更高的性能

        1.4数据访问

iBatis直接通过JDBC来操作数据库,因此性能较好。

2、iBatis的缺点:

        2.1学习曲线较陡峭

为了学习使用iBatis,开发人员需要了解XML和SQL语法以及SQL映射器

        2.2缺乏自动化

iBatis中缺少自动生成代码和自动化映射的功能,这会花费更多的时间来维护映射器。

3、MyBatis的优点:

        3.1简洁和易于阅读

MyBatis提供了一种比iBatis更简单的方式来定义SQL查询,这对于开发人员更容易理解。

        3.2映射

MyBatis提供了更准确的映射和ORM机制

        3.3设计上的优点

MyBatis的一些设计使得它更容易扩展和定制

        3.4移植性

MyBatis可以通过映射器的简单修改来更轻松地使其适用于多种关系型数据库系统。

4、MyBatis的缺点:

       4.1对初学者不太友好

编写MyBatis映射器时,一些初学者可能会感到困难和不适应。

        4.2可读性问题

MyBatis中有些地方可能难以理解,比如,当一个SQL语句跨越多行时,可能不太容易阅读。

        4.3SQL注入问题

虽然MyBatis提供了预防SQL注入攻击的措施,但是在实践中,它们通常很难正确使用。

总体来说,两种框架都是优秀的Java持久化框架,具有适用性和可伸缩性,开发人员可以根据项目需求,在iBatis和MyBatis中做出选择。

 


http://www.ppmy.cn/news/262234.html

相关文章

< 每日算法:一文带你认识 “ 双指针算法 ” >

每日算法:初识双指针算法 👉 1. 双指针概念:👉 2. 左右指针> 案例一:二分查找> 案例二:双指针 - 移除元素 👉 3. 快慢指针> 案例一: 删除排序数组中的重复项 👉…

实验篇(7.2) 05. 通过浏览器访问远端内网服务器 (FortiClient-SSL) ❀ 远程访问

【简介】直接将内网服务器映射成公网IP,可以方便的从任何地方访问服务器的指定端口,但是这种方式下,服务器是公开且暴露的。那有没有即方便、又比较安全的远程访问服务器的方法呢?我们来看看SSL VPN的Web模式。 SSL VPN介绍 从概念…

北邮22信通:实验七 三角波-方波(锯齿波-矩形波)发生器实验报告(着急验收的同学先看看,后续细节正在赶来中)

北邮22信通一枚~ 持续更新模电实验讲解 关注作者,解锁更多邮苑模电实验报告~ 获取更多文章,请访问专栏: 北邮22信通——电子电路_青山如墨雨如画的博客-CSDN博客 实验七 三角波-方波(锯齿波-矩形波)发生器实验…

Python基础语法入门教程

Python是一种通用的编程语言,非常适合初学者入门,以下是Python基础语法的教程,内容包括变量、数据类型、运算符、流程控制、函数等。 变量 Python中的变量不需要预先声明类型,可以直接赋值。例如: x 5 y "He…

API管理工具介绍——Apifox使用详解

目录 如何优雅地进行API管理 最终的解决方案 此外 敏捷迭代和团队协作,前后端分离的工作模式几乎是每个互联网公司的常规工作模式。 前后端分离,各自开发的优点很多,其中一项是它只需要提供一个统一的API接口,即可被web&#…

Z690主板无法识别硬盘解决办法(核显状态下设置CSM兼容模式无效,无法打开CSM开关)

Z690P主板i7 12700,无独立显卡,一块已经装好win10系统的SATA硬盘(MBR分区表类型)。 步骤如下: 1.首先进入PE系统,打开分区工具DiskGenius->硬盘->选中硬盘任何一个分区,点击“转换分区表类型为GUID格式”。点击…

LeetCode——690 员工的重要性(JAVA)

给定一个保存员工信息的数据结构,它包含了员工 唯一的 id ,重要度 和 直系下属的 id 。 比如,员工 1 是员工 2 的领导,员工 2 是员工 3 的领导。他们相应的重要度为 15 , 10 , 5 。那么员工 1 的数据结构是 [1, 15, [2]]&#xf…

警惕黑客利用 “高考” 热点进行攻击

今日高考第一天,广大学子已进入考场,老师及家长们期盼考生能考出理想的成绩。但随之而来的各类高考相关欺诈也可能到达了“战场”。在此,提醒广大考生和家长提高警惕,切勿轻信网络传言,避免隐私泄露,上当受…