Ibatis 简明教程

iBATOR - Introduction

iBATOR 是一个 iBATIS 的代码生成器。iBATOR 会对一张或多张数据库表进行内省,并且生成可用于访问这些表的 iBATIS 工件。

之后你可以编写自己的自定义 SQL 代码或存储过程来满足你的需求。iBATOR 生成了以下工件 −

  1. SqlMap XML Files

  2. 类表的主键和字段相匹配的 Java 类

  3. 使用上述对象的 DAO 类(可选)

iBATOR 可以作为一个独立的 JAR 文件,或作为一个 Ant 任务,或作为一个 Eclipse 插件来运行。本教程描述了从命令行生成 iBATIS 配置文件的最简单方式。

Download iBATOR

如果你使用的是除了 Eclipse 之外的 IDE,下载独立 JAR。独立 JAR 包含了一个运行 iBATOR 的 Ant 任务,或者你也可以从 Java 代码的命令行中运行 iBATOR。

  1. 你可以从 Download iBATOR 下载 zip 文件。

  2. 你可以查看在线文档 − iBATOR Documentation

Generating Configuration File

要运行 iBATOR,请执行以下步骤:

Step 1

适当创建并填写配置文件 ibatorConfig.xml。至少必须指定以下内容:

  1. 一个 <jdbcConnection> 元素,用于指定如何连接到目标数据库。

  2. 一个 <javaModelGenerator> 元素,用于指定目标包和生成 Java 模型对象的的目标项目。

  3. 一个 <sqlMapGenerator> 元素,用于指定目标包和生成 SQL 映射文件的的目标项目。

  4. 一个 &lt;daoGenerator&gt; 元素,用于指定目标包和生成 DAO 接口和类的目标项目(如果不想生成 DAO,可以省略 <daoGenerator> 元素)。

  5. 至少一个数据库 &lt;table&gt; 元素

NOTE − 有关 iBATOR 配置文件的示例,请参阅 XML Configuration File Reference 页面。

Step 2

将该文件保存到便于查找的位置,例如:\temp\ibatorConfig.xml。

Step 3

现在从命令行运行 iBATOR,如下所示:

java -jar abator.jar -configfile \temp\abatorConfig.xml -overwrite

这将告知 iBATOR 使用配置文件运行。它还将告知 iBATOR 覆盖同名的任何现有 Java 文件。如果您要保存任何现有 Java 文件,则省略 −overwrite 参数。

如果出现冲突,iBATOR 会以唯一名称保存新生成的文件。

运行 iBATOR 后,需要创建或修改标准 iBATIS 配置文件,以利用新生成代码。下一部分对此进行了说明。

Tasks After Running iBATOR

运行 iBATOR 后,需要创建或修改其他 iBATIS 配置工件。主要任务如下:

  1. 创建或修改 SqlMapConfig.xml 文件。

  2. 创建或修改 dao.xml 文件(仅当您使用 iBATIS DAO 框架时)。

下面详细描述每个任务:

Updating the SqlMapConfig.xml File

iBATIS 使用名为 SqlMapConfig.xml 的 XML 文件来指定连接数据库的信息、事务管理方案以及 iBATIS 会话中使用的 SQL 映射 XML 文件。

iBATOR 无法为您创建此文件,因为它不知道您的执行环境。但是,此文件中的某些项直接关系到 iBATOR 生成的项。

iBATOR 配置文件中的特定需求如下 -

  1. 命名空间语句必须启用。

  2. 必须列出 iBATOR 生成的 SQL Map XML 文件。

例如,假设 iBATOR 生成了一个名为 MyTable_SqlMap.xml 的 SQL Map XML 文件,并且该文件已被放入您的项目的 test.xml 包中。SqlMapConfig.xml 文件应具有以下条目 -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
   <!-- Statement namespaces are required for Abator -->
   <settings useStatementNamespaces="true" />

   <!-- Setup the transaction manager and data source that are
   appropriate for your environment
   -->

   <transactionManager type="...">
      <dataSource type="...">
      </dataSource>
   </transactionManager>

   <!-- SQL Map XML files should be listed here -->
   <sqlMap resource="test/xml/MyTable_SqlMap.xml" />

</sqlMapConfig>

如果有不止一个 SQL Map XML 文件(这是很常见的),那么可以在 <transactionManager> 元素之后使用重复的 <sqlMap> 元素以任意顺序列出这些文件。

Updating the dao.xml File

iBATIS DAO 框架由一个通常称为 dao.xml 的 xml 文件配置。

iBATIS DAO 框架使用这个文件来控制 DAO 的数据库连接信息,并且还可以列出 DAO 实现类和 DAO 接口。

在这个文件中,您应该指定 SqlMapConfig.xml 文件的路径,以及所有 iBATOR 生成的 DAO 接口和实现类。

例如,假设 iBATOR 生成了一个名为 MyTableDAO 的 DAO 接口和一个名为 MyTableDAOImpl 的实现类,并且这些文件已被放入您项目的 test.dao 包中。

dao.xml 文件应该具有以下条目 -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE daoConfig PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN" "http://ibatis.apache.org/dtd/dao-2.dtd">

<daoConfig>

   <context>

      <transactionManager type="SQLMAP">
         <property name="SqlMapConfigResource" value="test/SqlMapConfig.xml"/>
      </transactionManager>

      <!-- DAO interfaces and implementations should be listed here -->
      <dao interface="test.dao.MyTableDAO" implementation="test.dao.MyTableDAOImpl" />
   </context>

</daoConfig>

NOTE − 仅当您为 iBATIS DAO 框架生成了 DAO 时,才需要此步骤。