国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ibatis中的SQLMapConfig.xml配置及.properties文件的使用

2019-11-08 20:40:19
字體:
來源:轉載
供稿:網友

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 >  	<!-- 引入外部的JDBC配置-->     <PRoperties resource="jdbc.properties"/>     <!--是否啟用緩存機制,是否啟用延遲加載機制,是否啟用字節碼增強機制,是否啟用錯誤處理機制,最大并發請求數,最大session數,最大并發事務數,是否啟用名稱空間-->    	<settings cacheModelsEnabled ="true" lazyLoadingEnabled="true" enhancementEnabled="true" errorTracingEnabled="true"    			  maxRequests="32" maxSessions="10"  maxTransactions="5" useStatementNamespaces="true"/>    <transactionManager  type ="JDBC" >   <!-- 定義了ibatis的事務管理器有3中(JDBC,JTA,EXTERNAL) -->      <dataSource  type ="SIMPLE" >   <!-- type屬性指定了數據源的鏈接類型,也有3種類型(SIMPLE,DBCP,JNDI) -->          <property  name ="JDBC.Driver"  value ="${jdbc.driverClassName}" />          <property  name ="JDBC.ConnectionURL"  value ="${jdbc.url}" />          <property  name ="JDBC.Username"  value ="${jdbc.username}" />          <property  name ="JDBC.PassWord"  value ="${jdbc.password}" />          <property  name ="Pool.MaximumActiveConnections"  value ="${jdbc.maxActive}"   />   <!-- 連接池維持的最大容量 -->          <property  name ="Pool.MaximumIdleConnections"  value ="${jdbc.maxIdle}" />   <!-- 連接池允許掛起的最大連接 -->          <property  name ="Pool.MaximumCheckoutTime"  value ="${jdbc.maxCheckoutTime}" />   <!-- 連接被某個任務所允許占用的最大時間 -->          <property  name ="TimeToWait"  value ="${jdbc.timeToWait}" />   <!-- 線程允許等待的最大時間 -->          <property  name ="Pool.ValidationQuery"  value ="${jdbc.validationQuery}" />    </dataSource >    </transactionManager >    <sqlMap  resource ="com/sql/*.xml" />  </sqlMapConfig >

而在jdbc.properties中,我們配置了數據庫的驅動屬性,連接url,用戶名和密碼,這樣它們就可以被properties元素加載進來,使用起來非常方便。而properties配置文件中是以“名值對”的方式存儲的,那么我們使用名稱即可引用,這是很多人都熟悉的語法,比如:${driver}就能獲取到com.MySQL.jdbc.Driver

jdbc.properties的配置如下:

jdbc.url=jdbc:mysql://localhost:3306/testjdbc.driverClassName=com.mysql.jdbc.Driverjdbc.username=rootjdbc.password=123456jdbc.maxActive=50#jdbc.validationQuery=select 1 from dual

一、 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托管事務中使用. 

JNDI的配置大部分都在應用服務器中進行,所以在ibatis中的配置相對簡單

 

(1)jdbc事務控制的JNDI配置

  

< transctionManager  type ="JDBC" >       < dataSource  type ="JNDI" >             < property  name ="DataSource"  value ="java:comp/env/jdbc/myDataSource" />       </ dataSource >  </ transctionManager > 

(2)JTA事務控制的JNDI配置

  

< 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 同時執行 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(禁用) defaultStatementTimeout 此設置值必須為一個整數,作為JDBC連接超時的時間,這個值可以被任意一個映射文件的statement屬性來重新設置, 如果沒有指明,查詢將無超時時間限制除非在映射文件中設置statement屬性值。被設置的值以秒為單位等待連接失效   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 (啟用) -->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大理市| 子长县| 兰州市| 长泰县| 涡阳县| 喀喇| 牡丹江市| 虹口区| 甘孜县| 林口县| 聂荣县| 瑞金市| 万宁市| 邯郸县| 蒙阴县| 大方县| 濮阳市| 黑河市| 台州市| 长阳| 荆州市| 屏东县| 开化县| 铅山县| 玉林市| 泸水县| 方正县| 康乐县| 开原市| 永春县| 汉中市| 禄丰县| 德保县| 房山区| 噶尔县| 华容县| 连江县| 嘉禾县| 大石桥市| 内乡县| 繁峙县|