日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

sqlMapConfig.xml配置文件详解

發(fā)布時(shí)間:2025/3/17 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqlMapConfig.xml配置文件详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

sqlMapConfig.xml配置文件詳解:?
Xml代碼
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?>??
???<?settings???
????cacheModelsEnabled?="true"??<!--是否啟用緩存機(jī)制--?>??
???lazyLoadingEnabled="true"??<!--?是否啟用延遲加載機(jī)制?-->??
???enhancementEnabled="true"??<!--?是否啟用字節(jié)碼增強(qiáng)機(jī)制?-->??
???errorTracingEnabled="true"??<!--?是否啟用錯(cuò)誤處理機(jī)制?-->??
???maxRequests="32"??<!--?最大并發(fā)請(qǐng)求數(shù)?-->??
???maxSessions="10"??<!--?最大Session數(shù)?-->??
???maxTransactions="5"??<!--?最大并發(fā)事務(wù)數(shù)?-->??
???useStatementNamespaces="true"/>??<!--?是否啟用名稱空間?-->??
???<?transactionManager??type?="JDBC"?>???<!--?定義了ibatis的事務(wù)管理器有3中(JDBC,JTA,EXTERNAL)?-->??
????<?dataSource??type?="SIMPLE"?>???<!--?type屬性指定了數(shù)據(jù)源的鏈接類型,也有3種類型(SIMPLE,DBCP,JNDI)?-->??
????????<?property??name?="JDBC.Driver"??value?="com.mysql.jdbc.Driver"?/>??
????????<?property??name?="JDBC.ConnectionURL"??value?="jdbc:mysql://localhost/test"?/>??
????????<?property??name?="JDBC.Username"??value?="root"?/>??
????????<?property??name?="JDBC.Password"??value?="wyq"?/>??
????????<?property??name?="Pool.MaximumActiveConnections"??value?="10"???/>???<!--?連接池維持的最大容量?-->??
????????<?property??name?="Pool.MaximumIdleConnections"??value?="5"?/>???<!--?連接池允許掛起的最大連接?-->??
????????<?property??name?="Pool.MaximumCheckoutTime"??value?="120000"?/>???<!--?連接被某個(gè)任務(wù)所允許占用的最大時(shí)間?-->??
????????<?property??name?="TimeToWait"??value?="500"?/>???<!--?線程允許等待的最大時(shí)間?-->??
??????
????</?dataSource?>??
??</?transactionManager?>??
??<?sqlMap??resource?="com/wyq/map/userMap.xml"?/>??
</?sqlMapConfig?>??
??? sqlMap節(jié)點(diǎn)指定了映射文件的位置,?配置文件中可以定義多個(gè)sqlMap元素,以指定項(xiàng)目?jī)?nèi)所包含的所有映射文件.
?
?? <properties>元素的配置,它提供了允許在主配置文件之外的一個(gè)“名值對(duì)”列表,可以將其中的配置信息加載進(jìn)來(lái),而這些配置信息可以放在任何一個(gè)地方。使用properties元素,其中有兩個(gè)屬性,分別是:resource和url。
??? 使用resource屬性時(shí),類加載器會(huì)從類路徑開(kāi)始定位該資源;而使用url屬性時(shí),則是用java.net.URL類來(lái)處理的,提供一個(gè)有效的URL即可。之前的示例中,我們使用了resource屬性來(lái)配置數(shù)據(jù)庫(kù)連接信息,如:
?
Java代碼
<properties?resource="jdbc.properties"?/>??
Java代碼 ?
<properties?resource="jdbc.properties"?/>??
?而在jdbc.properties中,我們配置了數(shù)據(jù)庫(kù)的驅(qū)動(dòng)屬性,連接url,用戶名和密碼,這樣它們就可以被properties元素加載進(jìn)來(lái),使用起來(lái)非常方便。而properties配置文件中是以“名值對(duì)”的方式存儲(chǔ)的,那么我們使用名稱即可引用,這是很多人都熟悉的語(yǔ)法,比如:${driver}就能獲取到com.mysql.jdbc.Driver,
?
一、 transactionManager節(jié)點(diǎn)
transactionManagerab 定義了ibatis的事務(wù)管理器,目前提供了以下幾種選擇:

1)? JDBC
??????????????????? 通過(guò)傳統(tǒng)JDBC Connection.commit/rollback實(shí)現(xiàn)事務(wù)支持.
2)? JTA
?????????????????? 使用容器提供的JTA服務(wù)實(shí)現(xiàn)全局事務(wù)管理.
3)? EXTERNAL
???????????????? 外部事務(wù)管理,如在EJB中使用ibatis,通過(guò)EJB的部署配置即可實(shí)現(xiàn)自動(dòng)的事務(wù)管理機(jī)制.此時(shí)ibatis將把所有事務(wù)委托給外部容器進(jìn)行管理.此外,通過(guò)Spring等輕量級(jí)容量實(shí)現(xiàn)事務(wù)的配置化管理也是一個(gè)不錯(cuò)的選擇.?
二?dataSource?節(jié)點(diǎn)
dataSource 從屬于 transactionManager, 用于設(shè)定ibatis運(yùn)行期使用DataSource屬性.

??? type 屬性: dataSource 元素的 type 屬性指定了 dataSource 的實(shí)現(xiàn)類型.可選項(xiàng)目:

1)? SIMPLE:

SIMPLE 是 ibatis 內(nèi)置的 dataSource 實(shí)現(xiàn),其中實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)連接池機(jī)制,對(duì)應(yīng) ibatis 實(shí)現(xiàn)類為

com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory.

JDBC 使用 數(shù)據(jù)庫(kù)自己的事務(wù)(局部事務(wù)),connect.beginTranstion(), connect.commit()等.

2)? DBCP

基于Apache DBCP連接池組件實(shí)現(xiàn)的DataSource封裝,當(dāng)無(wú)容器提供DataSource服務(wù)時(shí),建議使用該選項(xiàng),對(duì)應(yīng)ibatis實(shí)現(xiàn)類為

com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory.

JTA : 使用jta 事務(wù)管理器管理事務(wù)(全局事務(wù)),使用userTranstion對(duì)象.

3)? JNDI

使用J2EE容器提供的DataSource實(shí)現(xiàn), DataSource將通過(guò)指定的JNDI Name從容器中獲取.對(duì)應(yīng)ibatis實(shí)現(xiàn)類為

com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory.

Ibatis 不控制事務(wù),事務(wù)交由外部控制,一般在CTM,或spring托管事務(wù)中使用.?

JNDI的配置大部分都在應(yīng)用服務(wù)器中進(jìn)行,所以在ibatis中的配置相對(duì)簡(jiǎn)單
?
(1)jdbc事務(wù)控制的JNDI配置
??
Xml代碼
Xml代碼 ?
<?transctionManager??type?="JDBC"?>??
?????<?dataSource??type?="JNDI"?>??
???????????<?property??name?="DataSource"??value?="java:comp/env/jdbc/myDataSource"?/>??
?????</?dataSource?>??
</?transctionManager?>??
?
?
?
(2)JTA事務(wù)控制的JNDI配置
??
Xml代碼
Xml代碼 ?
<?transctionManager??type?="JTA"?>??
?????<?property??name?="UserTransaction"??value?="java:/ctx/con/UserTransaction"?/>??
?????<?dataSource??type?="JNDI"?>??
???????????<?property??name?="DataSource"??value?="java:comp/env/jdbc/myDataSource"?/>??
??????</?dataSource?>??
</?transctionManager?>??
?
<!--?
maxRequests?
同時(shí)執(zhí)行 SQL 語(yǔ)句的最大線程數(shù)。大于這個(gè)值的線程將阻塞直到另一個(gè)線程執(zhí)行完成。不同的 DBMS有不同的限制值,但任何數(shù)據(jù)庫(kù)都有這些限制。通常這個(gè)值應(yīng)該至少是maxTransactions(參見(jiàn)以下)的 10 倍,并且總是大于 maxSessions 和maxTranactions。減小這個(gè)參數(shù)值通常能提高性能。?

例如:maxRequests=“256”?
缺省值:512?

maxSessions?
同一時(shí)間內(nèi)活動(dòng)的最大 session 數(shù)。一個(gè) session 可以maxSessions是代碼請(qǐng)求的顯式 session,也可以是當(dāng)線程使用SqlMapClient 實(shí)例(即執(zhí)行一條語(yǔ)句)自動(dòng)獲得的session。它應(yīng)該總是大于或等于 maxTransactions 并小于 maxRequests。減小這個(gè)參數(shù)值通常能減少內(nèi)存使用。?

例如:maxSessions=“64”?
缺省值:128?

maxTransactions?
同時(shí)進(jìn)入 SqlMapClient.startTransaction()的最大線程maxTransactions 數(shù)。大于這個(gè)值的線程將阻塞直到另一個(gè)線程退出。不同的 DBMS 有不同的限制值,但任何數(shù)據(jù)庫(kù)都有這些限制。這個(gè)參數(shù)值應(yīng)該總是小于或等于maxSessions 并總是遠(yuǎn)遠(yuǎn)小于 maxRequests。減小這個(gè)參數(shù)值通常能提高性能。?

例如:maxTransactions=“16”?
缺省值:32?

cacheModelsEnabled?
全局性地啟用或禁用 SqlMapClient 的所有緩存cacheModelsEnabled model。調(diào)試程序時(shí)使用。?

例如:cacheModelsEnabled=“true”?
缺省值:true(啟用)?

lazyLoadingEnabled?
全局性地啟用或禁用SqlMapClient的所有延遲加載。lazyLoadingEnabled 調(diào)試程序時(shí)使用。?
例子:lazyLoadingEnabled=“true”?
缺省值:true(啟用)?

enhancementEnabled?
全局性地啟用或禁用運(yùn)行時(shí)字節(jié)碼增強(qiáng),以優(yōu)化訪enhancementEnabled?
問(wèn)Java Bean屬性的性能,同時(shí)優(yōu)化延遲加載的性能。?

例子:enhancementEnabled=“true”?
缺省值:false(禁用)?

useStatementNamespaces?
如果啟用本屬性,必須使用全限定名來(lái)引用 mapped useStatementNamespaces?
statement。Mapped statement 的全限定名由 sql-map 的名稱和 mapped-statement 的名稱合成。例如: queryForObject("sqlMapName.statementName");?

例如:useStatementNamespaces=“false”?
缺省值:false(禁用)?

defaultStatementTimeout?
此設(shè)置值必須為一個(gè)整數(shù),作為JDBC連接超時(shí)的時(shí)間,這個(gè)值可以被任意一個(gè)映射文件的statement屬性來(lái)重新設(shè)置,?
如果沒(méi)有指明,查詢將無(wú)超時(shí)時(shí)間限制除非在映射文件中設(shè)置statement屬性值。被設(shè)置的值以秒為單位等待連接失效?
??
classInfoCacheEnabled?
With this setting enabled, iBATIS will maintain a cache of introspected?
classes. This will lead to a significant reduction in startup time if many?
classes are reused.?
例如: classInfoCacheEnabled=“true”?
缺省值: true (啟用)?

statementCachingEnabled (iBATIS 2.3.0以后版本中有)?
With this setting enabled, iBATIS will maintain a local cache of?
prepared statements. This can lead to significant performance?
improvements.?
例如: statementCachingEnabled=“true”?
缺省值: true (啟用)?
-->

總結(jié)

以上是生活随笔為你收集整理的sqlMapConfig.xml配置文件详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。