iBatis 之 SQL Map XML配置文件

SQL Map使用XML配置文件统一配置不同的属性,包括DataSource的详细配置信息,SQL Map和其他可选属性,如线程管理等。

以下是SQL Map配置文件的一个例子:

SqlMapConfig.xml

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

<properties resource=" examples/sqlmap/maps/SqlMapConfigExample.properties " />

<settings
       cacheModelsEnabled="true"
       enhancementEnabled="true"
       lazyLoadingEnabled="true"
       maxRequests="32"
       maxSessions="10"
       maxTransactions="5"
       useStatementNamespaces="false"
/>

<typeAlias alias="order" type="testdomain.Order"/>

<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="${driver}"/>
    <property name="JDBC.ConnectionURL" value="${url}"/>
    <property name="JDBC.Username" value="${username}"/>
    <property name="JDBC.Password" value="${password}"/>
    <property name="JDBC.DefaultAutoCommit" value="true" />
    <property name="Pool.MaximumActiveConnections" value="10"/>
    <property name="Pool.MaximumIdleConnections" value="5"/>
    <property name="Pool.MaximumCheckoutTime" value="120000"/>
    <property name="Pool.TimeToWait" value="500"/>
    <property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
    <property name="Pool.PingEnabled" value="false"/>
    <property name="Pool.PingConnectionsOlderThan" value="1"/>
    <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
</dataSource>
</transactionManager>

<sqlMap resource="examples/sqlmap/maps/Person.xml" />

</sqlMapConfig>

<properties>元素
SQL Map配置文件拥有唯一的<properties>元素,用于在配置文件中使用标准的Java属性文件(name=value)。这样做后,在属性文件中定义的属性可以作为变量在SQL Map配置文件及其包含的所有SQL Map映射文件中引用。例如,如果属性文件中包含属性:
driver=org.hsqldb.jdbcDriver
SQL Map配置文件及其每个映射文件都可以使用占位符${driver}来代表值org.hsqldb.jdbcDriver。例如:
<property name="JDBC.Driver" value="${driver}"/>
这个元素在开发,测试和部署各阶段都很有用。它可以使在多个不同的环境中重新配置应用和使用自动生成工具(如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可以是代码请求的显式session,也可以是当线程使用SqlMapClient实例(即执行一条语句)自动获得的session。它应该总是大于或等于maxTransactions并小于maxRequests。减小这个参数值通常能减少内存使用。
例如:maxSessions=“64”

缺省值:128

maxTransactions
同时进入SqlMapClient.startTransaction()的最大线程数。大于这个值的线程将阻塞直到另一个线程退出。不同的DBMS有不同的限制值,但任何数据库都有这些限制。这个参数值应该总是小于或等于maxSessions并总是远远小于maxRequests。减小这个参数值通常能提高性能。
例如:maxTransactions=“16”
缺省值:32
cacheModelsEnabled
全局性地启用或禁用SqlMapClient的所有缓存model。调试程序时使用。
例如:cacheModelsEnabled=“true”
缺省值:true(启用)
lazyLoadingEnabled
全局性地启用或禁用SqlMapClient的所有延迟加载。调试程序时使用。
例子:lazyLoadingEnabled=“true”
缺省值:true(启用)
enhancementEnabled
全局性地启用或禁用运行时字节码增强,以优化访问Java Bean属性的性能,同时优化延迟加载的性能。
例子:enhancementEnabled=“true”
缺省值:false(禁用)
useStatementNamespaces
如果启用本属性,必须使用全限定名来引用mapped statement。Mapped statement的全限定名由sql-map的名称和mapped-statement的名称合成。例如:queryForObject(“sqlMapName.statementName”);
例如:useStatementNamespaces=“false”
缺省值:false(禁用)


<typeAlias>元素
<typeAlias>元素让您为一个通常较长的、全限定类名指定一个较短的别名。例如:
<typeAlias alias="shortname" type="com.long.class.path.Class"/>
在SQL Map配置文件预定义了几个别名。它们是:
事务管理器别名
JDBC            com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfig
JTA                com.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfig
EXTERNAL  com.ibatis.sqlmap.engine.transaction.external.ExternalTransactionConfig

Data Source Factory别名
SIMPLE       com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory
DBCP          com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory
JNDI            com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory


<transactionManager>元素

<transationManager>元素让您为SQL Map配置事务管理服务。属性type指定所使用的事务管理器类型。这个属性值可以是一个类名,也可以是一个别名。包含在框架的三个事务管理器分别是:JDBC,JTA和EXTERNAL。

<sqlMap>元素

<sqlMap>元素用于包括SQL Map映射文件和其他的SQL Map配置文件。每个SqlMapClient对象使用的所有SQL Map映射文件都要在此声明。映射文件作为stream resource从类路径或URL读入。您必须在这里指定所有的SQL Map文件。例子如下:

<sqlMap resource="com/ibatis/examples/sql/Customer.xml" />
<sqlMap resource="com/ibatis/examples/sql/Account.xml" />
<sqlMap resource="com/ibatis/examples/sql/Product.xml" />


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值