ibatis的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>
<!--
cacheModelsEnabled 是否啓用SqlMapClient上的緩存機制。建議設爲"true"
enhancementEnabled 是否針對POJO啓用字節碼增強機制以提升getter/setter的調用效能,
避免使用Java Reflect所帶來的性能開銷。同時,這也爲Lazy Loading帶來了極大的性能提升。建議設爲"true"
errorTracingEnabled 是否啓用錯誤日誌,在開發期間建議設爲"true"以方便調試
lazyLoadingEnabled 是否啓用延遲加載機制,建議設爲"true"
maxRequests 最大併發請求數(Statement併發數)
maxTransactions 最大併發事務數
maxSessions 最大Session 數。即當前最大允許的併發SqlMapClient數。
maxSessions設定必須介於maxTransactions和maxRequests之間,即maxTransactions<maxSessions=<maxRequests
useStatementNamespaces 是否使用Statement命名空間。這裏的命名空間指的是映射文件中,sqlMap節點的namespace屬性,
如在上例中針對t_user表的映射文件sqlMap節點:<sqlMap namespace="User">
這裏,指定了此sqlMap節點下定義的操作均從屬於"User"命名空間。在useStatementNamespaces="true"的情況下,
Statement調用需追加命名空間,如:sqlMap.update("User.updateUser",user);
否則直接通過Statement名稱調用即可,如:sqlMap.update("updateUser",user);
但請注意此時需要保證所有映射文件中,Statement定義無重名。
-->

<settings cacheModelsEnabled="true" enhancementEnabled="true"
lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="50"
maxSessions="20" maxTransactions="10" useStatementNamespaces="true" />

<!--
transactionManager 節點定義了ibatis 的事務管理器,目前提供了以下幾
種選擇:
? JDBC
通過傳統JDBC Connection.commit/rollback實現事務支持。
? JTA
使用容器提供的JTA服務實現全局事務管理。
? EXTERNAL
外部事務管理,如在EJB中使用ibatis,通過EJB的部署配置即可實現自
動的事務管理機制。此時ibatis 將把所有事務委託給外部容器進行管理。
此外,通過Spring 等輕量級容器實現事務的配置化管理也是一個不錯的選
擇。關於結合容器實現事務管理,參見“高級特性”中的描述。
-->
<!--
JDBC.Driver JDBC 驅動。
如:org.gjt.mm.mysql.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)連接數。
-->
<!--
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時,是否將其廢棄。
-->
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<!-- transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL"
value="jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=UTF-8" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="root" />
</dataSource>
</transactionManager-->
<!--
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" >
<dataSource type="JNDI">
<property name="UserTransaction" value="java:/ctx/con/UserTransaction"/>
<property name="DataSource" value="java:comp/env/jdbc/myDataSource"/>
</dataSource>
</transactionManager>
-->
<!--
List the SQL Map XML files. They can be loaded from the
classpath
把 SQL Map xml文件列在下面,這些文件能夠從classpath中加載進來。

-->

<sqlMap resource="../conf/dao/lminfo_SqlMap.xml"/>
<sqlMap resource="../conf/dao/tyinfo_SqlMap.xml"/>

</sqlMapConfig>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章