1. C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。
2.
3. c3p0-config>
4.
5. default-config>
6.
7. 3
8.
9. "acquireIncrement">3</property>
10.
11. 30
12.
13. "acquireRetryAttempts">30</property>
14.
15. 1000
16.
17. "acquireRetryDelay">1000</property>
18.
19. false
20.
21. "autoCommitOnClose">false</property>
22.
23. <!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么
24.
25. 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试
26.
27. null-->
28.
29. "automaticTestTable">Test</property>
30.
31. <!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
32.
33. true,那么在尝试
34.
35. false-->
36.
37. "breakAfterAcquireFailure">false</property>
38.
39. <!--当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出
40.
41. 0则无限期等待。单位毫秒。Default: 0
42.
43. "checkoutTimeout">100</property>
44.
45. <!--通过实现ConnectionTester或QueryConnectionTester的类来测试连接。类名需制定全路径。
46.
47. Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester-->
48.
49. "connectionTesterClassName"></property>
50.
51. null即可
52.
53. null-->
54.
55. "factoryClassLocation">null</property>
56.
57. this to true
58.
59. (文档原文)作者强烈建议不使用的一个属性-->
60.
61. "forceIgnoreUnresolvedTransactions">false</property>
62.
63. 60秒检查所有连接池中的空闲连接。Default: 0
64.
65. "idleConnectionTestPeriod">60</property>
66.
67. 3
68.
69. "initialPoolSize">3</property>
70.
71. 60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
72.
73. "maxIdleTime">60</property>
74.
75. 15
76.
77. "maxPoolSize">15</property>
78.
79. <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
80.
81. 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
82.
83. 0,则缓存被关闭。Default: 0-->
84.
85. "maxStatements">100</property>
86.
87. 0
88.
89. "maxStatementsPerConnection"></property>
90.
91. <!--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能
92.
93. 3-->
94.
95. "numHelperThreads">3</property>
96.
97. <!--当用户调用getConnection()时使root用户成为去获取连接的用户。主要用于连接池连接非c3p0
98.
99. null-->
100.
101. "overrideDefaultUser">root</property>
102.
103. null-->
104.
105. "overrideDefaultPassword">password</property>
106.
107. null-->
108.
109. "password"></property>
110.
111. <!--定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意:
112.
113. null-->
114.
115. "preferredTestQuery">select id from test where id=1</property>
116.
117. 300秒。Default: 300
118.
119. "propertyCycle">300</property>
120.
121. true那么在每个connection提交的
122.
123. 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
124.
125. false
126.
127. "testConnectionOnCheckout">false</property>
128.
129. true那么在取得连接的同时将校验连接的有效性。Default: false
130.
131. "testConnectionOnCheckin">true</property>
132.
133. null-->
134.
135. "user">root</property>
136.
137. 在Hibernate(spring管理)中的配置:
138.
139. "dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
140.
141. "driverClass"><value>oracle.jdbc.driver.OracleDriver</value></property>
142.
143. "jdbcUrl"><value>jdbc:oracle:thin:@localhost:1521:Test</value></property>
144.
145. "user"><value>Kay</value></property>
146.
147. "password"><value>root</value></property>
148.
149. <!--连接池中保留的最小连接数。-->
150.
151. "minPoolSize" value="10"
152.
153. 15
154.
155. "maxPoolSize" value="100"
156.
157. 1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
158.
159. "maxIdleTime" value="1800"
160.
161. 3
162.
163. "acquireIncrement" value="3"
164.
165. "maxStatements" value="1000"
166.
167. "initialPoolSize" value="10"
168.
169. 60秒检查所有连接池中的空闲连接。Default: 0
170.
171. "idleConnectionTestPeriod" value="60"
172.
173. 30
174.
175. "acquireRetryAttempts" value="30"
176.
177. "breakAfterAcquireFailure" value="true"
178.
179. "testConnectionOnCheckout" value="false"
180.
181. </bean>
182.
183. ###########################
184.
185. ### C3P0 Connection Pool###
186.
187. ###########################
188.
189. 2
190.
191. 2
192.
193. 5000
194.
195. 100
196.
197. 3000
198.
199. 2
200.
201. false
202.
203. 在hibernate.cfg.xml文件里面加入如下的配置:
204.
205. <!-- 最大连接数 -->
206.
207. "hibernate.c3p0.max_size">20</property>
208.
209. <!-- 最小连接数 -->
210.
211. "hibernate.c3p0.min_size">5</property>
212.
213. <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
214.
215. "hibernate.c3p0.timeout">120</property>
216.
217. <!-- 最大的PreparedStatement的数量 -->
218.
219. "hibernate.c3p0.max_statements">100</property>
220.
221. 120秒检查连接池里的空闲连接 ,单位是秒-->
222.
223. "hibernate.c3p0.idle_test_period">120</property>
224.
225. <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
226.
227. "hibernate.c3p0.acquire_increment">2</property>
228.
229. <!-- 每次都验证连接是否可用 -->
230.
231. "hibernate.c3p0.validate">true</property>
232. [/size]