从 Hibernate 到 iBatis,初次体验 SqlMap,领略另番 OR-Mapping

用Hibernate也有一段时间了,项目中也用过CMP以及.net的DataSet,也想体验一下iBatis的SqlMap方式的魅力了,以前总是看iBatis介绍一的文章,现在应是亲自动手心临其境的时候了。

做这个实验基本是遵照 iBATIS SQL Maps 入门教程 中的例子做的,只是在原来的基础上还更简化了一些。

我用的开发工具是 Eclipse,如何建立你的工程和加入相应的 iBatis 包可不详叙。
iBatis的官网是 http://ibatis.apache.org/ ,可在这个网站上下载到需要的包, 我用的是2.1.5的版本,有三个jar包,分别是:ibatis-sqlmap-2.jar, ibatis-common-2.jar, ibatis-dao-2.jar, 最后注意加上你要用到的数据库驱动包,我在这个例子中用到的是 Oracle 数据库, JDBC 驱动包是 classes12.jar。
好啦,下面分六步介绍如何构建起一个最简单的IBatis应用程序

右边是下面几步创建文件的路径图,数据库表创建脚本就没列出来。

第一步:创建一个 测试数据库表,Person,SQL脚本

第二步:创建Java对应实体类, Person.java, 要有一个默认的构造函数,也就是符合JavaBean规范

第三步:创建SqlMap配置文件,相当于Hibernate的hibernate.cfg.xml配置文件,十分类似

第四步:创建SqlMap映射文件 Person.xml,相当于Hibernate的映射文件 *.hbm.xml,只是它的映射不靠POJO的属性到数据库字段的一一映射,靠的是Sql语句,所以谓之 SqlMap, 注意每条语句中参数的写法。

第五步:创建一个获取SqlMapClient的工厂类,相当于MyEclipse为Hibernate应用程序生成的HibernateSessionFactory类

第六步:终极体验,创建你的测试类 Client.java, 进行 CRUD 操作,SqlMapClient有如Hibernate的Session一般,仔细看看其中的方法吧。


补充:
2008-05-25 SqlMapClient 中有许多实用的方法。
iBatis 2.3.0 不再分 sqlmap/common/dao 多个包了,都放在一个包了
ibatis-2.3.0.677.jar

配置文件 SqlMapConfig.xml 的 DTD 是

<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

Map 映射文件的 DTD 是

<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">

本文链接 https://yanbin.blog/hibernate-to-ibatis-or-mapping/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

3 Comments
Inline Feedbacks
View all comments