免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Ibatis2.0使用說(shuō)明(二)——配置篇(1)
一、 SQL Map XML 配置文件
SQL Map 使用XML 配置文件集中的配置不同的設(shè)置屬性,包括DataSource 的詳細(xì)配置信息,SQL Map 和其他可選屬性,如線程管理等。以下是SQL Map 配置文件的一個(gè)例子:
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"<!-- Always ensure to use the correct XML header as above! -->
<sqlMapConfig>
<!-- The properties (name=value) in the file specified here can be used placeholders in this config
file (e.g. "${driver}". The file is relative to the classpath and is completely optional. -->
<properties resource=" examples/sqlmap/maps/SqlMapConfigExample.properties " />
<!-- These settings control SqlMapClient configuration details, primarily to do with transaction
management. They are all optional (more detail later in this document). -->
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<!-- Type aliases allow you to use a shorter name for long fully qualified class names. -->
<typeAlias alias="order" type="testdomain.Order"/>
<!-- Configure a datasource to use with this SQL Map using SimpleDataSource.
Notice the use of the properties from the above resource -->
<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>
<!-- Identify all SQL Map XML files to be loaded by this SQL map. Notice the paths
are relative to the classpath. For now, we only have one... -->
<sqlMap resource="examples/sqlmap/maps/Person.xml" />
</sqlMapConfig>
(二) <setting>元素
<setting>元素用于配置和優(yōu)化利用XML配置文件創(chuàng)建的SqlMapClient實(shí)例。<settings>元素及其所有的屬性都是可選的。下面列出了<setting>元素支持的屬性和功能:
1. maxExecute
同時(shí)執(zhí)行一個(gè)Sql statement的最大線程數(shù),大于這個(gè)值的線程將阻塞直到另一個(gè)線程退出。不同的DBMS 有不同的限制值。
例子:maxExecute="256"
缺省值:512
一般情況下,這個(gè)值要大于10,而且要同時(shí)比maxSessions和maxTransactions參數(shù)設(shè)定的值大。通常情況下,減少最大同時(shí)訪問(wèn)次數(shù)可以提高執(zhí)行的效率。
2. maxSessions
是指在一個(gè)給定時(shí)間內(nèi)處于活動(dòng)狀態(tài)的session(或客戶端)的數(shù)量。這個(gè)值一般要大于或等于maxTransactions的參數(shù)值,同時(shí)要小于maxRequests的參數(shù)值
例子: maxSessions="64"
缺省值:128
3. maxTransaction
同時(shí)進(jìn)入SqlMapClient.startTransaction()的最大線程數(shù)。大于這個(gè)值的線程將阻塞直到另一個(gè)線程退出。不同的DBMS 有不同的限制值。這個(gè)值應(yīng)該總是小于或等于maxSessions,而且要比maxRequests小的多。通常情況下,減少這個(gè)值可以提高執(zhí)行的效率。
例子:maxTransaction="16"
缺省值:32
4. cacheModelsEnabled
啟用或禁用SqlMapClient所有的cache models。調(diào)試程序時(shí)有用。
例子:cacheModelsEnabled="true"
缺省值:true
5. lazyLoadingEnabled
啟用或禁用SqlMapClient所有的lazy loading。調(diào)試程序時(shí)有用。
例子:lazyLoadingEnabled="true"
缺省值:true
6. enhancementEnabled
This setting enables runtime bytecode enhancement to facilitate optimized JavaBean property access as well as enhanced lazy loading.
例子 enhancementEnabled="true"
缺省值: false (disabled)
7. useStatementNamespaces
這個(gè)選項(xiàng)如果啟用,你就必須使用全限定名來(lái)引用mapped statements,這個(gè)全名是由sqlMap的名字和statement的名字組成的。
例如:queryForObject("sqlMapName.statementName");
例子: useStatementNamespaces="false"
缺省值: false (disabled)
(三) <typeAlias>元素
<typeAlias>允許你指定別名。這樣你就可以通過(guò)你指定的短名字來(lái)代替冗長(zhǎng)的名字了。
例如:<typeAlias alias="shortname" type="com.long.class.path.Class"/>
下面是在SqlMap中預(yù)定義的別名:
1. Transaction Manager Aliases
JDBC  com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfig
JTA  com.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfig
EXTERNAL com.ibatis.sqlmap.engine.transaction.external.ExternalTransactionConfig
2. Data Source Factory Aliases
SIMPLE  com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory
DBCP  com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory
JNDI  com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory
(四)<transactionManager>元素
注意:在Sql Map 1.0版本中,允許同時(shí)配置多個(gè)數(shù)據(jù)源,這樣會(huì)導(dǎo)致一些問(wèn)題。所以從2.0的版本開(kāi)始,只允許配置一個(gè)數(shù)據(jù)源,如果你有配置多個(gè)數(shù)據(jù)源的需求的話,建議你使用多個(gè)不同配置的屬性文件,或者在build Sql Map的時(shí)候,作為一個(gè)參數(shù)傳進(jìn)來(lái)。
<transactionManager>元素允許你為SQL Map配置事務(wù)管理服務(wù)。type屬性用來(lái)指明使用哪種事務(wù)管理,值既可以是一個(gè)類名字,也可以是一個(gè)別名。
在框架中已經(jīng)包含了三種事務(wù)管理:JDBC, JTA 和 EXTERNAL
 
1. JDBC
允許用JDBC通過(guò)Connection 的commit()和rollback()方法來(lái)控制事務(wù)。
2. JTA
這種事務(wù)管理使用一個(gè)JTA的全局事務(wù)將SQL Map的activities作為一個(gè)wider scope事務(wù)的一部分而包含進(jìn)來(lái),這個(gè)事務(wù)可能包含其他的數(shù)據(jù)庫(kù)或事務(wù)
源。這個(gè)配置需要一個(gè)UserTransaction屬性來(lái)通過(guò)JNDI resource設(shè)置本地的user transaction。
3. EXTERNAL
允許你自己管理事務(wù)。你仍然可以配置一個(gè)數(shù)據(jù)源,但是事務(wù)不會(huì)在框架生命周期中被提交或回滾。這意味著你必須要用自己的程序來(lái)控制事務(wù)。這個(gè)設(shè)置對(duì)于非事務(wù)型數(shù)據(jù)庫(kù)是非常有用的。
(五) <datasource>元素
<datasource>標(biāo)簽及其屬性是<transactionManager>的配置的一部分,它也是用于配置你的SQL Map所使用的數(shù)據(jù)源的。
目前本框架提供三種數(shù)據(jù)源工廠,但是你也可以自己寫(xiě)一個(gè)。下面是每一種數(shù)據(jù)源工廠的配置舉例:
1. SimpleDataSourceFactory
SimpleDataSourceFactory 為池化的DataSource提供了一個(gè)基本的實(shí)現(xiàn),適用于在沒(méi)有容器提供數(shù)據(jù)源的情況。
<transactionManager type="JDBC">
 <dataSource type="SIMPLE">
  <property name="JDBC.Driver" value="org.postgresql.Driver"/>
  <property name="JDBC.ConnectionURL" value="jdbc:postgresql://server:5432/dbname"/>
  <property name="JDBC.Username" value="user"/>
  <property name="JDBC.Password" value="password"/>
  <!-- OPTIONAL PROPERTIES BELOW -->
  <property name="Pool.MaximumActiveConnections" value="10"/>
  <property name="Pool.MaximumIdleConnections" value="5"/>
  <property name="Pool.MaximumCheckoutTime" value="120000"/>
  <property name="Pool.TimeToWait" value="10000"/>
  <property name="Pool.PingQuery" value="select * from dual"/>
  <property name="Pool.PingEnabled" value="false"/>
  <property name="Pool.PingConnectionsOlderThan" value="0"/>
  <property name="Pool.PingConnectionsNotUsedFor" value="0"/>
 </dataSource>
</transactionManager>
2. DbcpDataSourceFactory
DbcpDataSourceFactory 實(shí)現(xiàn)使用Jakarta DBCP(Database Connection Pool)的DataSource
API 提供連接池服務(wù)。適用于Web 容器不提供DataSource 服務(wù)的情況,或執(zhí)行一個(gè)單獨(dú)的
應(yīng)用。DbcpDataSourceFactory 中必須要配置的參數(shù)例子如下:
<transactionManager type="JDBC">
 <dataSource type="DBCP">
  <property name="JDBC.Driver" value="${driver}"/>
  <property name="JDBC.ConnectionURL" value="${url}"/>
  <property name="JDBC.Username" value="${username}"/>
  <property name="JDBC.Password" value="${password}"/>
  <!-- OPTIONAL PROPERTIES BELOW -->
  <property name="Pool.MaximumActiveConnections" value="10"/>
  <property name="Pool.MaximumIdleConnections" value="5"/>
  <property name="Pool.MaximumWait" value="60000"/>
  <!-- Use of the validation query can be problematic.
  If you have difficulty, try without it. -->
  <property name="Pool.ValidationQuery" value="select * from ACCOUNT"/>
  <property name="Pool.LogAbandoned" value="false"/>
  <property name="Pool.RemoveAbandoned" value="false"/>
  <property name="Pool.RemoveAbandonedTimeout" value="50000"/>
 </datasource>
</transactionManager>
3. JndiDataSourceFactory
JndiDataSourceFactory 在應(yīng)用服務(wù)器的容器中從JNDI Context 中查找DataSource 實(shí)現(xiàn)。當(dāng)使用應(yīng)用
服務(wù)器,并且服務(wù)器提供了容器管理的連接池和相關(guān)的DataSource 實(shí)現(xiàn)的情況下,可以使用
JndiDataSourceFactory。使用JDBC DataSource 的標(biāo)準(zhǔn)方法是通過(guò)JNDI 來(lái)查找。
JndiDataSourceFactory必須要配置的屬性如下:
<transactionManager type="JDBC" >
 <dataSource type="JNDI">
  <property name="DataSource" value="java:comp/env/jdbc/jpetstore"/>
 </dataSource>
</transactionManager>
注意:上面的配置是使用標(biāo)準(zhǔn)的JDBC事務(wù)管理。但是,在一個(gè)容器管理的數(shù)據(jù)源中,你也可能想為全局的事務(wù)做如下配置:
<transactionManager type="JTA" >
 <property name="UserTransaction" value="java:/ctx/con/UserTransaction"/>
 <dataSource type="JNDI">
  <property name="DataSource" value="java:comp/env/jdbc/jpetstore"/>
 </dataSource>
</transactionManager>
注意:UserTransaction屬性指向一個(gè)JNDI的位置,你可以通過(guò)這個(gè)JNDI找到一個(gè)UserTransaction實(shí)例。這個(gè)在JTA的事務(wù)管理中是需要的,這樣可以使你的SQL MAP參與到包含有其他數(shù)據(jù)庫(kù)和事務(wù)源的事務(wù)中。
(六)<sql-map>元素
sqlMap元素用于包括SQL Map 映射文件和其他的SQL Map 配置文件。每個(gè)SqlMapClient
對(duì)象使用的SQL Map 映射文件都要在此聲明。映射文件作為stream resource 從類路徑或URL中讀
入。您必須相對(duì)于類路徑或URL來(lái)指定所有的SQL Map 文件。
下面是幾個(gè)例子:
<!-- CLASSPATH RESOURCES -->
<sqlMap resource="com/ibatis/examples/sql/Customer.xml" />
<sqlMap resource="com/ibatis/examples/sql/Account.xml" />
<sqlMap resource="com/ibatis/examples/sql/Product.xml" />
<!-- URL RESOURCES -->
<sqlMap url="file:///c:/config/Customer.xml " />
<sqlMap url="file:///c:/config/Account.xml " />
<sqlMap url="file:///c:/config/Product.xml" />
本篇文章來(lái)源于 新技術(shù)天空 原文鏈接:http://www.ntsky.com/tech/java/opensource/ibatis/2007-06-29/040bcaface3aa002.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
IBatis ORM框架的總配置文件SqlMapConfig.xml 詳細(xì)信息
mybatis、ibatis、spring各種整合方式
在spring配置jdbc
MyBatis如何引用多個(gè)數(shù)據(jù)源操作
Spring 多數(shù)據(jù)源事務(wù)配置問(wèn)題
ibatis 開(kāi)始之旅
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服