锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏈榪戠殑涓涓」鐩湪Hibernate浣跨敤C3P0鐨勮繛鎺ユ睜錛屾暟鎹簱涓篗ysql銆傚紑鍙戞祴璇曟病鏈夐棶棰橈紝鍦ㄨ繍琛屼腑姣忎釜涓孌甸暱鐨勭┖闂叉椂闂村氨鍑虹幇寮傚父: 鏌ョ湅浜哅ysql鐨勬枃妗o紝浠ュ強Connector/J鐨勬枃妗d互鍙婂湪綰胯鏄庡彂鐜幫紝鍑虹幇榪欑寮傚父鐨勫師鍥犳槸錛?/p>
Mysql鏈嶅姟鍣ㄩ粯璁ょ殑“wait_timeout”鏄?灝忔椂錛屼篃灝辨槸璇翠竴涓猚onnection絀洪棽瓚呰繃8涓皬鏃訛紝Mysql灝嗚嚜鍔ㄦ柇寮璇?connection銆傝繖灝辨槸闂鐨勬墍鍦紝鍦–3P0 pools涓殑connections濡傛灉絀洪棽瓚呰繃8灝忔椂錛孧ysql灝嗗叾鏂紑錛岃孋3P0騫朵笉鐭ラ亾璇onnection宸茬粡澶辨晥錛屽鏋滆繖鏃舵湁 Client璇鋒眰connection錛孋3P0灝嗚澶辨晥鐨凜onnection鎻愪緵緇機lient錛屽皢浼氶犳垚涓婇潰鐨勫紓甯搞?/p>
瑙e喅鐨勬柟娉曟湁3縐嶏細 褰撶劧鏈濂界殑鍔炴硶鏄悓鏃剁患鍚堜嬌鐢ㄤ笂榪?縐嶆柟娉曪紝涓嬮潰灝盌BCP鍜孋3P0鍒嗗埆鍋氫竴璇存槑錛屽亣璁緒ait_timeout涓洪粯璁ょ殑8灝忔椂 DBCP澧炲姞浠ヤ笅閰嶇疆淇℃伅: C3P0澧炲姞浠ヤ笅閰嶇疆淇℃伅: 鏇村鐨勯厤緗俊鎭ぇ瀹跺彲浠ユ煡鐪婥3P0鏂囨。錛孋onnector/J鏂囨。錛屼互鍙奃BCP鐨勬枃妗c?/p>
杞? http://www.javaeye.com/article/38506 鎴戣嚜宸辯殑閰嶇疆: jdbc.driverClass=com.mysql.jdbc.Driver jdbc.acquireRetryAttempts = 30 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> </bean>
<default-config>
<!--褰撹繛鎺ユ睜涓殑榪炴帴鑰楀敖鐨勬椂鍊檆3p0涓嬈″悓鏃惰幏鍙栫殑榪炴帴鏁般侱efault: 3 -->
<property name="acquireIncrement">3</property>
<!--瀹氫箟鍦ㄤ粠鏁版嵁搴撹幏鍙栨柊榪炴帴澶辮觸鍚庨噸澶嶅皾璇曠殑嬈℃暟銆侱efault: 30 -->
<property name="acquireRetryAttempts">30</property>
<!--涓ゆ榪炴帴涓棿闅旀椂闂達紝鍗曚綅姣銆侱efault: 1000 -->
<property name="acquireRetryDelay">1000</property>
<!--榪炴帴鍏抽棴鏃墮粯璁ゅ皢鎵鏈夋湭鎻愪氦鐨勬搷浣滃洖婊氥侱efault: false -->
<property name="autoCommitOnClose">false</property>
<!--c3p0灝嗗緩涓寮犲悕涓篢est鐨勭┖琛紝騫朵嬌鐢ㄥ叾鑷甫鐨勬煡璇㈣鍙ヨ繘琛屾祴璇曘傚鏋滃畾涔変簡榪欎釜鍙傛暟閭d箞
灞炴referredTestQuery灝嗚蹇界暐銆備綘涓嶈兘鍦ㄨ繖寮燭est琛ㄤ笂榪涜浠諱綍鎿嶄綔錛屽畠灝嗗彧渚沜3p0嫻嬭瘯
浣跨敤銆侱efault: null-->
<property name="automaticTestTable">Test</property>
<!--鑾峰彇榪炴帴澶辮觸灝嗕細寮曡搗鎵鏈夌瓑寰呰繛鎺ユ睜鏉ヨ幏鍙栬繛鎺ョ殑綰跨▼鎶涘嚭寮傚父銆備絾鏄暟鎹簮浠嶆湁鏁?br />
淇濈暀錛屽茍鍦ㄤ笅嬈¤皟鐢╣etConnection()鐨勬椂鍊欑戶緇皾璇曡幏鍙栬繛鎺ャ傚鏋滆涓簍rue錛岄偅涔堝湪灝濊瘯
鑾峰彇榪炴帴澶辮觸鍚庤鏁版嵁婧愬皢鐢蟲槑宸叉柇寮騫舵案涔呭叧闂侱efault: false-->
<property name="breakAfterAcquireFailure
<!--褰撹繛鎺ユ睜鐢ㄥ畬鏃跺鎴風璋冪敤getConnection()鍚庣瓑寰呰幏鍙栨柊榪炴帴鐨勬椂闂達紝瓚呮椂鍚庡皢鎶涘嚭
SQLException,濡傝涓?鍒欐棤闄愭湡絳夊緟銆傚崟浣嶆縐掋侱efault: 0 -->
<property name="checkoutTimeout">100</property>
<!--閫氳繃瀹炵幇ConnectionTester鎴朡ueryConnectionTester鐨勭被鏉?/font>嫻嬭瘯榪炴帴銆傜被鍚嶉渶鍒跺畾鍏ㄨ礬寰勩?br />
Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester-->
<property name="connectionTesterClassNam
<!--鎸囧畾c3p0 libraries鐨勮礬寰勶紝濡傛灉錛堥氬父閮芥槸榪欐牱錛夊湪鏈湴鍗沖彲鑾峰緱閭d箞鏃犻渶璁劇疆錛岄粯璁ull鍗沖彲
Default: null-->
<property name="factoryClassLocation">null</property>
<!--Strongly disrecommended. Setting this to true may lead to subtle and bizarre bugs.
錛堟枃妗e師鏂囷級浣滆呭己鐑堝緩璁笉浣跨敤鐨勪竴涓睘鎬?->
<property name="forceIgnoreUnresolvedTra
<!--姣?0縐掓鏌ユ墍鏈夎繛鎺ユ睜涓殑絀洪棽榪炴帴銆侱efault: 0 -->
<property name="idleConnectionTestPeriod
<!--鍒濆鍖栨椂鑾峰彇涓変釜榪炴帴錛屽彇鍊煎簲鍦╩inPoolSize涓巑axPoolSize涔嬮棿銆侱efault: 3 -->
<property name="initialPoolSize">3</property>
<!--鏈澶х┖闂叉椂闂?60縐掑唴鏈嬌鐢ㄥ垯榪炴帴琚涪寮冦傝嫢涓?鍒欐案涓嶄涪寮冦侱efault: 0 -->
<property name="maxIdleTime">60</property>
<!--榪炴帴姹犱腑淇濈暀鐨勬渶澶ц繛鎺ユ暟銆侱efault: 15 -->
<property name="maxPoolSize">15</property>
<!--JDBC鐨勬爣鍑嗗弬鏁幫紝鐢ㄤ互鎺у埗鏁版嵁婧愬唴鍔犺澆鐨凱reparedStatements鏁伴噺銆備絾鐢變簬棰勭紦瀛樼殑statements
灞炰簬鍗曚釜connection鑰屼笉鏄暣涓繛鎺ユ睜銆傛墍浠ヨ緗繖涓弬鏁伴渶瑕佽冭檻鍒板鏂歸潰鐨勫洜绱犮?br />
濡傛灉maxStatements涓巑axStatementsPerConnecti
<!--maxStatementsPerConnecti
<!--c3p0鏄紓姝ユ搷浣滅殑錛岀紦鎱㈢殑JDBC鎿嶄綔閫氳繃甯姪榪涚▼瀹屾垚銆傛墿灞曡繖浜涙搷浣滃彲浠ユ湁鏁堢殑鎻愬崌鎬ц兘
閫氳繃澶氱嚎紼嬪疄鐜板涓搷浣滃悓鏃惰鎵ц銆侱efault: 3-->
<property name="numHelperThreads">3</property>
<!--褰撶敤鎴瘋皟鐢╣etConnection()鏃朵嬌root鐢ㄦ埛鎴愪負鍘昏幏鍙栬繛鎺ョ殑鐢ㄦ埛銆備富瑕佺敤浜庤繛鎺ユ睜榪炴帴闈瀋3p0
鐨勬暟鎹簮鏃躲侱efault: null-->
<property name="overrideDefaultUser">root</property>
<!--涓巓verrideDefaultUser鍙傛暟瀵瑰簲浣跨敤鐨勪竴涓弬鏁般侱efault: null-->
<property name="overrideDefaultPassword">password</property>
<!--瀵嗙爜銆侱efault: null-->
<property name="password"></property>
<!--瀹氫箟鎵鏈夎繛鎺ユ祴璇曢兘鎵ц鐨勬祴璇曡鍙ャ傚湪浣跨敤榪炴帴嫻嬭瘯鐨勬儏鍐典笅榪欎釜涓鏄捐憲鎻愰珮嫻嬭瘯閫熷害銆傛敞鎰忥細
嫻嬭瘯鐨勮〃蹇呴』鍦ㄥ垵濮嬫暟鎹簮鐨勬椂鍊欏氨瀛樺湪銆侱efault: null-->
<property name="preferredTestQuery">select id from test where id=1</property>
<!--鐢ㄦ埛淇敼緋葷粺閰嶇疆鍙傛暟鎵ц鍓嶆渶澶氱瓑寰?00縐掋侱efault: 300 -->
<property name="propertyCycle">300</property>
<!--鍥犳ц兘娑堣楀ぇ璇峰彧鍦ㄩ渶瑕佺殑鏃跺欎嬌鐢ㄥ畠銆傚鏋滆涓簍rue閭d箞鍦ㄦ瘡涓猚onnection鎻愪氦鐨?br />
鏃跺欓兘灝嗘牎楠屽叾鏈夋晥鎬с傚緩璁嬌鐢╥dleConnectionTestPeriod
絳夋柟娉曟潵鎻愬崌榪炴帴嫻嬭瘯鐨勬ц兘銆侱efault: false -->
<!--濡傛灉璁句負true閭d箞鍦ㄥ彇寰楄繛鎺ョ殑鍚屾椂灝嗘牎楠岃繛鎺ョ殑鏈夋晥鎬с侱efault: false -->
<property name="testConnectionOnCheckin">true</property>
<!--鐢ㄦ埛鍚嶃侱efault: null-->
<property name="user">root</property>
<!--鏃╂湡鐨刢3p0鐗堟湰瀵笿DBC鎺ュ彛閲囩敤鍔ㄦ佸弽灝勪唬鐞嗐傚湪鏃╂湡鐗堟湰鐢ㄩ斿箍娉涚殑鎯呭喌涓嬭繖涓弬鏁?br />
鍏佽鐢ㄦ埛鎭㈠鍒板姩鎬佸弽灝勪唬鐞嗕互瑙e喅涓嶇ǔ瀹氱殑鏁呴殰銆傛渶鏂扮殑闈炲弽灝勪唬鐞嗘洿蹇茍涓斿凡緇忓紑濮?br />
騫挎硾鐨勮浣跨敤錛屾墍浠ヨ繖涓弬鏁版湭蹇呮湁鐢ㄣ傜幇鍦ㄥ師鍏堢殑鍔ㄦ佸弽灝勪笌鏂扮殑闈炲弽灝勪唬鐞嗗悓鏃跺彈鍒?br />
鏀寔錛屼絾浠婂悗鍙兘鐨勭増鏈彲鑳戒笉鏀寔鍔ㄦ佸弽灝勪唬鐞嗐侱efault: false-->
<property name="usesTraditionalReflectiv
<property name="automaticTestTable">con_test</property>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">25</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">0</property>
<user-overrides user="swaldman">
</user-overrides>
</default-config>
<named-config name="dumbTestConfig">
<property name="maxStatements">200</property>
<user-overrides user="poop">
<property name="maxStatements">300</property>
</user-overrides>
</named-config>
</c3p0-config>
杞細http://www.wujianrong.com/archives/2007/08/c3p0.html
jdbc.jdbcUrl = jdbc:mysql://localhost:3306/test
jdbc.user = root
jdbc.password = 12345
jdbc.miniPoolSize = 1
jdbc.maxPoolSize = 20
jdbc.initialPoolSize = 1
jdbc.maxIdleTime = 25000
jdbc.acquireIncrement = 1
jdbc.acquireRetryDelay = 1000
jdbc.testConnectionOnCheckin = true
jdbc.automaticTestTable = c3p0TestTable
jdbc.idleConnectionTestPeriod
jdbc.checkoutTimeout=3000
]]>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312</property>
<!-- 鏁版嵁搴撶敤鎴峰悕-->
<property name="connection.username">root</property>
<!-- 鏁版嵁搴撳瘑鐮?->
<property name="connection.password">root</property>
<!--Sql Server 椹卞姩紼嬪簭 eg. jtds-1.2.jar-->
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:jtds:sqlserver://localhost:1433;DatabaseName=dbname</property>
<!-- 鏁版嵁搴撶敤鎴峰悕-->
<property name="connection.username">sa</property>
<!-- 鏁版嵁搴撳瘑鐮?->
<property name="connection.password"></property>
<!--Oracle 椹卞姩紼嬪簭 ojdbc14.jar-->
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- JDBC URL -->
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:dbname</property>
<!-- 鏁版嵁搴撶敤鎴峰悕-->
<property name="connection.username">test</property>
<!-- 鏁版嵁搴撳瘑鐮?->
<property name="connection.password">test</property>
RDBMS | 鏂硅█ |
---|---|
DB2 | org.hibernate.dialect.DB2Dialect |
DB2 AS/400 | org.hibernate.dialect.DB2400Dialect |
DB2 OS390 | org.hibernate.dialect.DB2390Dialect |
PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
MySQL | org.hibernate.dialect.MySQLDialect |
MySQL with InnoDB | org.hibernate.dialect.MySQLInnoDBDialect |
MySQL with MyISAM | org.hibernate.dialect.MySQLMyISAMDialect |
Oracle (any version) | org.hibernate.dialect.OracleDialect |
Oracle 9i/10g | org.hibernate.dialect.Oracle9Dialect |
Sybase | org.hibernate.dialect.SybaseDialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |
Microsoft SQL Server | org.hibernate.dialect.SQLServerDialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Informix | org.hibernate.dialect.InformixDialect |
HypersonicSQL | org.hibernate.dialect.HSQLDialect |
Ingres | org.hibernate.dialect.IngresDialect |
Progress | org.hibernate.dialect.ProgressDialect |
Mckoi SQL | org.hibernate.dialect.MckoiDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Pointbase | org.hibernate.dialect.PointbaseDialect |
FrontBase | org.hibernate.dialect.FrontbaseDialect |
Firebird | org.hibernate.dialect.FirebirdDialect |