<bean id="sqlMapClient" class="com.paic.pafa.app.lwc.service.persistence.dao.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <description>iBATIS SQL Mapping配置文件名,系統要可以在CLASSPATH中找到該文件</description> <value>sqlmap-config.xml</value> </property> <property name="maxRowCount"> <description>iBATIS 查詢數據庫的最大數據庫記錄行數. 默認爲5000 </description> <value>${ibatis.query.maxrowcount}</value> </property> <property name="excludeStatements"> <description>不使用系通通一配置的結果集的語句</description> <list> </list> </property> <property name="maxRowCount4Excludes"> <description>excludeStatements中的sql查詢數據庫的最大記錄行數.默認爲5000</description> <value>${ibatis.query.maxRowCount4Excludes}</value> </property> <property name="isThrowExcept"> <description> 配置當結果集超過限制值後,系統是拋出異常仍是返回限制範圍內的數據。 true:拋出異常 false:返回限制範圍內的數據 默認爲true. </description> <value>TRUE</value> </property> </bean>
sqlmap-config.xml java
<sqlMapConfig> <!-- 參數說明: cacheModelsEnabled: 啓用或禁用SqlMapClient的全部緩存model。調試程序時使用。 enhancementEnabled: 啓用或禁用運行時字節碼加強,以優化訪問Java Bean屬性的性能,同時優化延遲加載 的性能。 lazyLoadingEnabled: 啓用或禁用SqlMapClient的全部延遲加載。調試程序時使用。 maxRequests: 同時執行SQL語句的最大線程數。大於這個值的線程將阻塞直到另外一個線程執行完成。 不一樣的DBMS有不一樣的限制值,但任何數據庫都有這些限制。一般這個值應該至少是 maxTransactions的10倍,而且老是大於maxSessions和maxTranactions。減少這個參數值一般能提升性能。 maxSessions: 同一時間內活動的最大session數。一個session能夠是代碼請求的顯式session, 也能夠是當線程使用SqlMapClient實例(即執行一條語句)自動得到的session。 它應該老是大於或等於maxTransactions並小於maxRequests。減少這個參數值一般能 減小內存使用。 maxTransactions: 同時進入SqlMapClient.startTransaction()的最大線程數。大於這個值的線程將阻塞 直到另外一個線程退出。不一樣的DBMS有不一樣的限制值,但任何數據庫都有這些限制。這個 參數值應該老是小於或等於maxSessions並老是遠遠小於maxRequests。減少這個參數值 一般能提升性能。 useStatementNamespaces: 若是啓用本屬性,必須使用全限定名來引用mapped statement。Mapped statement的 全限定名由sql-map的名稱和mapped-statement的名稱合成,例如 queryForObject(「sqlMapName.statementName」) --> <settings cacheModelsEnabled="true" enhancementEnabled="false" lazyLoadingEnabled="false" maxRequests="3000" maxSessions="3000" maxTransactions="3000" useStatementNamespaces="false"/> <!-- 添加sql map文件。當一個SQL Map文件太大的時候,能夠拆分紅若干個小的文件。 建議按照模塊拆分sql map文件,好比sqlmap-mapping-module-a.xml, sqlmap-mapping-module-a.xml。<property name="Driver.SetBigStringTryClob" value="true"/> 命名規範爲:sqlmap-mapping-模塊名.xml(所有小寫) <sqlMap resource="sqlmap-mapping-bankvirement.xml"/> --> <sqlMap resource="sqlmap-mapping-privilege.xml"/> <sqlMap resource="sqlmap-mapping-worktable.xml"/> <sqlMap resource="sqlmap-mapping-workflow.xml"/> <sqlMap resource="sqlmap-mapping-print.xml"/> <sqlMap resource="sqlmap-mapping-newbusiness.xml"/> </sqlMapConfig>
<bean id="idGeneratorDAO" class="com.palic.egis.common.integration.dao.impl.IdGeneratorIbatisDAO"> <description>用於生成Sequence ID的DAO</description> <property name="dataSource"> <ref local="dsFactory"/> </property> <property name="sqlMapClient"> <ref local="sqlMapClient"/> </property> <property name="useRandomSequence"> <description> 若是爲true將隨機產生序號,而不經過Oracle的package來獲得。 做爲演示使用。添加這個配置的做用是演示能夠經過在context配置文件 中添加本身的配置。 </description> <value>false</value> </property> </bean>
public class IdGeneratorIbatisDAO extends SqlMapClientDaoSupport implements IdGeneratorDAO
SqlMapClientTemplate sqlMap = getSqlMapClientTemplate(); sqlMap.queryForObject("generateSequence", map);
<bean id="dsFactory" class="com.paic.pafa.app.lwc.service.persistence.datasource.DataSourceFactoryBean" > <property name="defaultDSKey"> <description>缺省的數據源,必須指定爲下面map中的entry key之一</description> <value>GBSDS</value> </property> <property name="dataSources"> <description>能夠在map屬性裏面添加多個數據源</description> <map> <entry key="GBSDS"> <ref local="defaultDS"/> </entry> <entry key="GBSDS_XA"> <ref local="gbsDS_XA"/> </entry> </map> </property> </bean> <bean id="defaultDS" class="com.paic.pafa.app.lwc.core.naming.JndiObjectFactoryBean"> <property name="jndiName"> <value>${defaultDS}</value> </property> <property name="jndiTemplate"> <ref local="jndiTemplate"/> </property> </bean> context-egis-nbu.properties defaultDS=jdbc/egis/gbsds biz-context.xml <!-- JNDI定義 --> <bean id="jndiTemplate" class="com.paic.pafa.app.lwc.core.naming.JndiTemplate"> <description>定義一個用做模板的JNDI,能夠被其它bean引用</description> <property name="environment"> <props> <prop key="java.naming.provider.url">${egis.txnActionBean.jndi.url}</prop> <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop> </props> </property> </bean> context-egis-nbu.properties #egis的TxnActionBean JNDI配置,確定是localhost ,可是須要指定端口 egis.txnActionBean.jndi.url=t3://localhost:43962