当前位置:首页 » 操作系统 » ibatis源码

ibatis源码

发布时间: 2024-10-24 06:22:53

㈠ mybatis和ibatis的区别

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

㈡ spring 怎么管理ibatis的session,spring事务管理后 会关闭session么在源码中怎么查看

首先要明白spring为什么要管理session?session是在什么时候使用的?以及为什么要管理?

1、spring其实管理的是sessionFactory对象,很明显这个对象是用来获取session的。在spring上下文全局中应该只有一个,这个不用担心因为默认情况下spring都是管理bean都是单例的。

2、session是线程不安全的,因此我们使用的是时候应当使用局部变量的方式使用。也就是方法体内使用
3、先看图

可能你觉得这个比较发麻,这么简单的一个方法我手动控制就好了!但是实际应用当中可能你这个业务方法还调用其他的业务方法,那时候你这个事务要怎么控制,是全部写在一个try-catch里面还是怎么处理?

㈢ mybatis怎么实现两种数据库的兼容

方法:在系统运行过程中,针对不同数据库类型区分加载不同文件路径下的sqlmap配置。留给开发人员做的事依旧是快乐地编写原始数据库语句,而不再为多数据库兼容问题挠头。
分析问题:
1、解决ibatis多数据库兼容的问题,实际上就是让ibatis可以自动选择不同数据库sqlmap配置文件。
2、打开ibatis源码工程并进行代码跟踪,最终定位到com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.java处,系统中运行的sqlmap节点均从这里统一转化加载的。
3、很明显SqlMapConfigParser源码中的addSqlMapNodelets负责解析“/sqlMapConfig/sqlMap”路径,即也就是sqlmap文件路径。
4、要实现“多数据库兼容”,这里改造下这个方法即可。

解决方法:
1、首选我们在<setting>节点新增一个“DBProctName”用于判断数据库种类。当然通过java.sql.DatabaseMetaData也可以获得,但这太依赖于jdbc驱动,还是手动配置保险。
2、重构SqlMapConfigParser的addSqlMapNodelets方法。
" 1)首选获得单个sqlmap文件的位置,如 sqlmap主目录\XXX.xml;
2)依据上面设置的DBProctName属性值获得数据库类型;
3)将sqlmap的文件路径重定位到运行数据库类型文件下。如 sqlmap主目录\mysql\XXX.xml,代表程序当前运行于msql数据库上,并加载系统mysql数据库对应的 sqlmap文件"
4、ok,现在ibatis支持“多数据库兼容”了(完整源码见附件)。

使用方法:
1、编译SqlMapConfigParser.java生成可运行文件SqlMapConfigParser.class(见附件),并将其覆盖添加到ibatis.jar中。
2、在系统sqlmap配置文件存放主目录如src\conf\mapping添加多数据库兼容支持的子目录,如src\conf\mapping\mysql,src\conf\mapping\oracle等
3、以实际项目需要编写多数据库sqlmap配置文件。注意:不同数据库类型需要确保具有相同的sqlmap配置文件名和sql节点名
4、在ibatis主配置文件(如sql-map-config.xml)中,<setting>指定当前程序运行数据库类型

热点内容
love281解压密码 发布:2024-11-23 22:00:39 浏览:162
通过服务器搭建多个网站 发布:2024-11-23 21:57:57 浏览:248
溆浦云服务器 发布:2024-11-23 21:53:43 浏览:237
缤智先锋版配置有哪些 发布:2024-11-23 21:28:04 浏览:886
4b存储器多少钱 发布:2024-11-23 21:23:49 浏览:137
逆水寒服务器经验少怎么回事 发布:2024-11-23 21:22:44 浏览:438
菜鸟教程源码 发布:2024-11-23 21:21:13 浏览:702
安卓手机怎么录屏能带声音 发布:2024-11-23 21:20:19 浏览:817
androidstudio查看签名 发布:2024-11-23 21:14:54 浏览:819
能编译stm32和C语言的软件 发布:2024-11-23 21:12:45 浏览:769