SQL Map使用XML配置文件统一配置不同的属性,包括DATASOURCE的详细配置信息, SQL Map和其他可选属性,如线程管理等.以下是SQL Map配置文件的一个例子:
<?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="sqlMapConfig.properties" />
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"></property>
<property name="JDBC.ConnectionURL" value="${url}" ></property>
<property name="JDBC.Username" value="${username}" ></property>
<property name="JDBC.Password" value="${password}" />
</dataSource>
</transactionManager>
<sqlMap resource="com/ibatis/db/xml/User.xml" />
</sqlMapConfig>
一 properties节点
SQL MAP 配置文件拥有唯一的<properties>节点,用于在配置文件中使用标准的JAVA属性文件(name=value).这样做后,在属性文件中定义的属性可以作为变量在SQL MAP配置文件及其包含的所有SQL MAP映射文件中引用.例如,如果属性文件中包含属性:
driver=com.mysql.jdbc.Driver
SQL MAP配置文件及其每个映射文件都可以使用占位符${driver}来代表值com.mysql.jdbc.Driver.例如
<property name="JDBC.Driver" value="${driver}"></property>
这个元素在开发,测试和部署各阶段都很有用.它可以使用在多个不同的环境中重新配置应用和使用自动生成工具(如ANT)变得容易.属性文件可以从类路径中加载(使用resource),也可以从合法的URL中加载(使用url属性).例如,要加载固定路径的属性文件,使用:
<properties url=file:///c:/config/my.properties/>
二 setting节点
setting节点用于配置和优化SQLMapClient实例的各选项.<setting>节点本身及其所有的属性都是可选的.下表列出了setting节点支持的属性及其功能.
maxRequests
同时执行 SQL 语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的 DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是maxTransactions(参见以下)的 10 倍,并且总 是大于 maxSessions 和maxTranactions。减小这个参数值通常能提高性能。
例如:maxRequests=“256”
缺省值:512
maxSessions
同一时间内活动的最大 session 数。一个 session 可以maxSessions是代码请求的显式 session,也可以是当线程使用SqlMapClient 实例(即执行一条语句)自动获得的session。它应该总是大于或等于 maxTransactions 并小于 maxRequests。减小这个参数值通常能减少内存使用。
例如:maxSessions=“64”
缺省值:128
maxTransactions
同时进入 SqlMapClient.startTransaction()的最大线程maxTransactions 数。大于这个值的线程将阻塞直到另一个线程退出。不同的 DBMS 有不同的限制值,但任何数据库都有这些限制。这个参数值应该总是小于或等于maxSessions 并总是远远小于 maxRequests。减小这个参数值通常能提高性能。
例如:maxTransactions=“16”
缺省值:32
cacheModelsEnabled
全局性地启用或禁用 SqlMapClient 的所有缓存cacheModelsEnabled model。调试程序时使用。
例如:cacheModelsEnabled=“true”
缺省值:true(启用)
lazyLoadingEnabled
全局性地启用或禁用SqlMapClient的所有延迟加载。lazyLoadingEnabled 调试程序时使用。
例子:lazyLoadingEnabled=“true”
缺省值:true(启用)
enhancementEnabled
全局性地启用或禁用运行时字节码增强,以优化访enhancementEnabled
问Java Bean属性的性能,同时优化延迟加载的性能。
例子:enhancementEnabled=“true”
缺省值:false(禁用)
useStatementNamespaces
如果启用本属性,必须使用全限定名来引用 mapped useStatementNamespaces
statement。Mapped statement 的全限定名由 sql-map 的名称和 mapped-statement 的名称合成。例如: queryForObject("sqlMapName.statementName");
例如:useStatementNamespaces=“false”
缺省值:false(禁用)
三 transactionManager节点
transactionManagerab定义了ibatis的事务管理器,目前提供了以下几种选择:
1) JDBC
通过传统JDBC Connection.commit/rollback实现事务支持.
2) JTA
使用容器提供的JTA服务实现全局事务管理.
3) EXTERNAL
外部事务管理,如在EJB中使用ibatis,通过EJB的部署配置即可实现自动的事务管理机制.此时ibatis将把所有事务委托给外部容器进行管理.此外,通过Spring等轻量级容量实现事务的配置化管理也是一个不错的选择.
四 dataSource节点
dataSource从属于transactionManager,用于设定ibatis运行期使用DataSource属性.
type属性: dataSource元素的type属性指定了dataSource的实现类型.可选项目:
1) SIMPLE:
SIMPLE是ibatis内置的dataSource实现,其中实现了一个简单的数据库连接池机制,对应ibatis实现类为
com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory.
JDBC使用 数据库自己的事务(局部事务),connect.beginTranstion(), connect.commit()等.
2) DBCP
基于Apache DBCP连接池组件实现的DataSource封装,当无容器提供DataSource服务时,建议使用该选项,对应ibatis实现类为
com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory.
JTA : 使用jta 事务管理器管理事务(全局事务),使用userTranstion对象.
3) JNDI
使用J2EE容器提供的DataSource实现, DataSource将通过指定的JNDI Name从容器中获取.对应ibatis实现类为
com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory.
Ibatis不控制事务,事务交由外部控制,一般在CTM,或spring托管事务中使用.
五 dataSource的子节点说明(SIMPLE&DBCP):
JDBC.Driver JDBC 驱动。 如:com.mysql.jdbc.Driver
JDBC.ConnectionURL :数据库URL。 如:jdbc:mysql://localhost/sample 如果用的是SQLServer JDBC Driver,需要在url后追加SelectMethod=Cursor以获得JDBC事务的多Statement支持。
JDBC.Username:数据库用户名
JDBC.Password :数据库用户密码
Pool.MaximumActiveConnections :数据库连接池可维持的最大容量。
Pool.MaximumIdleConnections :数据库连接池中允许的挂起(idle)连接数。
以上子节点适用于SIMPLE 和DBCP 模式,分别针对SIMPLE 和DBCP 模式的DataSource私有配置节点如下:
SIMPLE:
Pool.MaximumCheckoutTime
数据库联接池中,连接被某个任务所允许占用的最大时间,如果超过这个时间限定,连接将被强制收回。(毫秒)
Pool.TimeToWait
当线程试图从连接池中获取连接时,连接池中无可用连接可供使用,此时线程将进入等待状态,直到池中出现空闲连接。此参数设定了线程所允许等待的最长时间。(毫秒)
Pool.PingQuery
数据库连接状态检测语句。某些数据库在连接在某段时间持续处于空闲状态时会将其断开。而连接池管理器将通过此语句检测池中连接是否可用。检测语句应该是一个最简化的无逻辑SQL。如“select 1 from t_user”,如果执行此语句成功,连接池管理器将认为此连接处于可用状态
Pool.PingEnabled
是否允许检测连接状态。
Pool.PingConnectionsOlderThan
对持续连接时间超过设定值(毫秒)的连接进行检测。
Pool.PingConnectionsNotUsedFor
对空闲超过设定值(毫秒)的连接进行检测。
DBCP:
Pool.MaximumWait
当线程试图从连接池中获取连接时,连接池中无可用连接可供使用,此时线程将进入等待状态,直到池中出现空闲连接。此参数设定了线程所允许等待的最长时间。(毫秒)
Pool.ValidationQuery
数据库连接状态检测语句。某些数据库在连接在某段时间持续处于空闲状态时会将其断开。而连接池管理器将通过此语句检测池中连接是否可用。检测语句应该是一个最简化的无逻辑SQL。如“select 1 from t_user”,如果执行此语句成功,连接池管理器将认为此连接处于可用状态。
Pool.LogAbandoned
当数据库连接被废弃时,是否打印日志。
Pool.RemoveAbandonedTimeout
数据库连接被废弃的最大超时时间
Pool.RemoveAbandoned
当连接空闲时间超过RemoveAbandonedTimeout时,是否将其废弃。
JNDI由于大部分配置是在应用服务器中进行,因此ibatis中的配置相对简
分别使用JDBC和JTA事务管理的JDNI配置:
使用JDBC事务管理的JNDI DataSource配置
< transactionManager type ="JDBC" >
< dataSource type ="JNDI" >
< property name ="DataSource"
value ="java:comp/env/jdbc/myDataSource" />
</ dataSource >
</ transactionManager >
< transactionManager type ="JTA" >
< property name ="UserTransaction"
value ="java:/ctx/con/UserTransaction" />
< dataSource type ="JNDI" >
< property name ="DataSource"
value ="java:comp/env/jdbc/myDataSource" />
</ dataSource >
</transactionManager>
六 sqlMap节点
sqlMap 节点指定了映射文件的位置,配置文件中可以定义多个sqlMap元素,以指定项目内所包含的所有映射文件.
分享到:
相关推荐
SQL Map XML配置文件 元素 元素 元素 元素 元素 元素 SQL Map XML映射文件 Mapped Statements Statement的类型 SQL 语句 自动生成的主键 存储过程 parameterClass parameterMap Inline Parameter简介 resultClass ...
SQL Map XML配置文件用于定义SQL Map的结构和关系。配置文件包括以下元素: 1. 元素:用于定义SQL Map的配置信息。 2. 元素:用于定义SQL Map的设置信息。 3. 元素:用于定义类型别名。 4. 元素:用于定义事务管理...
总结来说,"sql-map-2.dtd"和"sql-map-config-2.dtd"是Ibatis 2.x版本中非常关键的组件,它们为XML配置文件提供了结构化规则,使得开发人员能够编写出合法且易于维护的SQL映射文件和全局配置文件。理解并正确使用...
#### 四、SQL Map XML 配置文件 iBATIS SQL Maps 使用 XML 文件进行配置,主要包括以下几个元素: - `<properties>`:用于设置环境变量或外部资源文件路径。 - `<setting>`:用于配置运行时的行为。 - `...
**SQL Map XML配置文件**:配置文件包含了数据库连接信息、SQL语句、结果映射等关键元素,是Ibatis运行的基础。 **配置SQL Map**:配置包括设置数据源、事务管理器等,确保Ibatis能够正确地与数据库交互。 **事务...
#### 四、SQL Map XML 配置文件详解 - **<properties> 元素**:用于定义外部属性,可以是环境变量或者配置文件中的属性。 - **<setting> 元素**:配置 SQL Map 的运行时行为,如缓存行为、事务管理等。 - **...
**概念**:SQL Map 是 iBATIS 提供的一种用于简化数据库操作的技术,通过简单的 XML 配置文件来实现 JavaBean 与 SQL 语句之间的映射。这种映射方式使得开发者无需编写复杂的 JDBC 代码即可完成对数据库的操作。 **...
- **iBATIS SQL Map** 是一种用于简化数据库访问的工具,它通过简单的XML配置文件将Java Bean与SQL语句进行映射,从而减少了编写数据库访问代码的工作量。 #### 二、SQL Map 概念 - **SQL Map** 的核心概念是将Java...
#### 四、SQL Map XML 配置文件详解 iBATIS 使用 XML 文件来配置数据库连接、事务管理、SQL 映射等信息。配置文件的主要元素包括: 1. **`<properties>` 元素**:用于设置属性,可以是系统属性或者是外部文件中的...
#### 四、SQL Map XML 配置文件 - **<properties> 元素**:用于设置 SQL Map 的配置属性,如数据库连接信息等。 - **<setting> 元素**:用于配置 SQL Map 的运行时行为,例如日志级别、缓存策略等。 - **...
**SQL Map XML 配置文件** 是 iBATS 中的核心配置文件之一,用于指定各种配置信息,包括属性设置、别名定义、事务管理器和数据源等。 ##### 《属性》元素 此元素用于定义全局的属性,这些属性可以在整个配置文件中...
- SQL Map XML配置文件:这是Mybatis的核心配置,包含了数据库连接信息、映射文件路径、全局配置等。 - Mapper接口和Mapper XML文件:Mapper接口定义了数据库操作的方法,XML文件则包含了具体的SQL语句和结果映射...
iBATIS DataMapper通过SQL Map XML配置文件来管理各种设置和SQL映射。以下是其中几个重要的元素: ##### 1. `<properties>` 元素 用于指定属性值,这些属性可以被其他元素引用。例如数据库连接信息可以通过这种...
本文将重点讨论如何使用generatorConfig.xml配置文件来实现这个功能。 generatorConfig.xml是MyBatis Generator(MBG)工具的核心配置文件,它定义了生成代码的各项参数,包括数据源信息、目标文件位置、生成的Java...
在Ibatis中,`sql-map`和`sql-map-config`是两个重要的XML配置文件,它们使用DTD(Document Type Definition)来定义其结构和规则。 DTD是XML文档类型定义,它定义了XML文档的合法构建块,包括元素、属性、实体等,...
#### 三、SQL Map XML配置文件 - **元素**:用于定义全局属性,这些属性可以在整个配置文件中被引用,便于管理和维护。 - **元素**:用于配置iBATIS的行为设置,如缓存策略、日志级别等。 - **元素**:指定用于创建...
1. SQL Map XML配置文件:这是Ibatis的核心,定义了SQL语句、参数映射和结果映射,使得SQL与业务代码解耦。 2. SqlSession接口:它是与数据库进行交互的主要接口,提供了执行SQL和管理事务的方法。 3. Mapper接口和...
2. sqlmap-3.x.x.jar:包含了SQL Map XML配置文件解析所需的类。 此外,为了使Spring与iBatis整合,还需要以下的jar包: 1. spring-tx.jar:Spring的事务管理模块,对于数据库操作的事务控制至关重要。 2. spring-...