- ibatis-common-2.jar—Shared iBATIS classes
- ibatis-sqlmap-2.jar—The iBATIS SQL mapping classes
1. 获得一份ibatis
1.1 二进制发布
1.2 从源代码构建
http://svn.apache.org/repos/asf/ibatis/
2. 发布中包含的内容
ibatis-common-2.jar
ibatis-sqlmap-2.jar
ibatis-dao-2.jar
user-javadoc.zip
dev-javadoc.zip
ibatis-src.zip
3. 依耐性
3.1 针对延迟加载的字节码增强
3.2 jakarta Commons数据库连接池
3.3 分布式高速缓存
4. 将ibatis添加到应用程序中
4.1 在独立应用程序中使用ibatis
add the iBATIS JARs to the classpath in Linux using the -cp switch
java –cp ibatis-sqlmap-2.jar:ibatis-common-2.jar:. MyMainClass
4.2 在Web应用程序中使用ibatis
5 ibatis和JDBC
使用JDBC需要注意的几个问题:
5.1 释放JDBC资源
5.2 SQL注入
5.3 降低复杂度
6 配置ibatis(续)
6.1 SQL Map 配置文件
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>
<properties resource="db.properties" />
<settings useStatementNamespaces="false" cacheModelsEnabled="true"
enhancementEnabled="true" lazyLoadingEnabled="true" maxRequests="32"
maxSessions="10" maxTransactions="5" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${user}" />
<property name="JDBC.Password" value="${pword}" />
</dataSource>
</transactionManager>
<sqlMap resource="org/apache/mapper2/ii15/SqlMap.xml" />
</sqlMapConfig>
6.2 <properties>
该元素允许在主配置文件之外提供一个名/值对列表。
可以使用两种方式来指定所用的属性文件,每种方式都对应<properties>元素的一个属性:
- resource——类路径上的一个资源(或文件),使用类加载器来读取它
- url——URL,用java.net.URL类来处理,
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/test
user=root
pword=apple
使用下面代码引用此属性文件:
<properties resource="db.properties" />
引用这些属性:
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${user}" />
<property name="JDBC.Password" value="${pword}" />
6.3 <settings>
- lazyLoadingEnabled——指定当存在相关联的已映射语句时,是否使用延迟加载。默认true
- cacheModelsEnabled——默认true
- enhancementEnabled——指定是否使用cglib中那些以优化的类来提高延迟加载的性能,默认true
- useStatementNamespaces——指定在引用映射语句时,是否需要使用限定名。默认false
- maxRequests (deprecated)——
- maxSessions (deprecated)——
- maxTransactions (deprecated)——
6.4 <typeAlias>
<typeAlias alias="Account"
type="org.apache.ibatis.jgamestore.domain.Account" />
ibatis框架为若干类型定义了别名:
6.5 <transactionManager>
type属性
事务管理器,可用的另一设置为commitRequired:默认false。要求在释放某个连接之前必须提交或者回退
- <property> elements
- <dataSource> element
6.6 <typeHandler>
将数据从数据库特定的数据类型转换为应用程序中的数据类型。
如数据库中用Y/N,应用程序需转换为布尔值
自定义类型处理器,需创建两个类:一个自定义类型处理器和一个类型处理器回调类
6.7 <sqlMap>
可使用
- resource——类路径上的一个资源(或文件),使用类加载器来读取它
- url——URL,用java.net.URL类来处理,