介绍
欢迎来到iBATIS Database Layer!这个框架将让你能够更好的在JAVA应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是SQL Maps,另一个是Data Access Objects。另外还包括一些可能很有用的工具。
SQL Maps
Sql Maps是这个框架中最激动人心的部分,它是整个iBATIS Database Layer的核心价值所在。通过使用Sql Maps你可以显著的节约数据库操作的代码量。SQL Maps使用一个简单的XML文件来实现从javaBean到SQL statements的映射。跟其他的框架或者对象映射工具相比,SQL Maps最大的优势是简单。它需要学习的东西很少,在连接表或复杂查询时也不需要复杂的scheme(怎么翻complex scheme?),使用SQL Maps, 你可以自由的使用SQL语句。
Data Access Objects (DAO)
当我们开发灵活的JAVA应用时,有一个好主意就是通过一个通用API层把实体操作的细节封装起来。Data Access Objects允许你通过一个简单接口的来操作数据,从而隐藏了实现的细节。使用DAO,你可以动态配置你的应用程序来访问不同的实体存储机制。如果你有一个复杂的应用需要用到几个不同的数据库,DAO可以让你建立一个一致的API,让系统的其他部分来调用。
Utilities
iBATIS Database Layer包含一系列的有用的工具,比如SimpleDataSource,JDBC DataSource 2.0(也包括3.0)的一个轻量级实现。ScriptRunner也提供了从单元测试到自动发布的数据库准备工作。
Examples
跟这个框架一起有一个examples.zip,包含了一系列简单的实例,在http://www.ibatis.com上有更多的例子,包括非常著名的Jpestore, 一个在线商店。(译者注,蓝色天空也有一系列的中文介绍和实例)
About this Document
本文介绍了iBATIS Database Layer最重要的功能,还有一些功用没有写出来,凡是没有写出来的这些,可以认为是不支持或者正在修改。这些功能可能不经过通知就修改了,所以最好不要使用它们。本文将尽可能保持与框架同步。请确认你两者是否匹配。
SQL Maps (com.ibatis.db.sqlmap.*)
概念
SQL Map API允许程序员很简单的把JAVA对象映射到PreparedStatement参数或者ResultSets。SQL Maps的机制很简单,提供一个框架,来实现用20%的代码来实现80%JDBC的功能。
How does it work?
SQL Maps提供一个简单的框架,通过XML描述来映射JAVABeans,MAP implementations甚至原始类型的包装(String,Integer等)到JDBC PreparedStatement。想法很简单,基本的步骤如下:
1)提供一个对象作为参数(either a JavaBean, Map or primitive wrapper),The parameter object will be used setting input values in an update statement, or query values in a where clause (etc.).(感觉不译为好,你说呢?)
2)执行这个映射的statement,这一步是魔术发生的地方。SQL Maps框架将建立一个PreparedStatement实例(instance),使用前面提供的对象的参数,执行statement,然后从ResultSet中建立一个返回对象。
3)如果是Update,则返回有多少行修改了,如果是查询,则返回一个对象或者对象的集合。跟参数一样,返回对象也可以是一个JAVABEAN,MAP或者一个primitive type wrapper。
流程图如下:
|