使用C3P0改造JDBC對數(shù)據(jù)庫的連接
本文實例為大家分享了使用C3P0改造JDBC對數(shù)據(jù)庫的連接,供大家參考,具體內(nèi)容如下
1.Connection對象在JDBC使用的時候.使用的時候就會去創(chuàng)建一個對象,使用結(jié)束以后就會將這個對象給銷毀了.每次創(chuàng)建和銷毀對象都是耗時操作.需要使用連接池對其進行優(yōu)化.程序初始化的時候,初始化多個連接,將多個連接放入到池中(內(nèi)存中).每次獲取的時候,都可以直接從連接池中進行獲取.使用結(jié)束以后,將連接歸還到池中。
本文介紹的連接池為:C3P0
2.使用步驟
導入jar包:c3p0-0.9.1.2.jar
在src文件夾下創(chuàng)建c3p0-config.xml文件
使用C3P0連接池
3.代碼實現(xiàn)
package lesson15_jdbc; import com.mchange.v2.c3p0.ComboPooledDataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class C3P0_lianjiechi { public static void main(String[] args) { //使用自定義配置 ComboPooledDataSource dataSource1=new ComboPooledDataSource(); //使用自定義配置 //ComboPooledDataSource dataSource2 = new ComboPooledDataSource(""); //建立連接 try{ Connection conn = dataSource1.getConnection(); String sql="select * from 1_mytable1"; PreparedStatement pst=conn.prepareStatement(sql); ResultSet res = pst.executeQuery(); while(res.next()){ System.out.println(res.getString("n")+"->"+res.getString("age")+"->"+res.getString("gender")); } res.close(); pst.close(); conn.close(); }catch (SQLException e){ e.printStackTrace(); } } }
4.c3p0-config.xml配置文件(如下)
<c3p0-config> <!-- 默認配置,如果沒有指定則使用這個配置 --> <default-config> <!-- 基本配置 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/1_mydata</property> <property name="user">root</property> <property name="password">123456</property> <!--擴展配置--> <property name="checkoutTimeout">30000</property> <property name="idleConnectionTestPeriod">30</property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </default-config> <!-- 命名的配置 --> <named-config name="Space_c3p0"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/1_mydata</property> <property name="user">root</property> <property name="password">123456</property> <!-- 如果池中數(shù)據(jù)連接不夠時一次增長多少個 --> <property name="acquireIncrement">5</property> <property name="initialPoolSize">20</property> <property name="minPoolSize">10</property> <property name="maxPoolSize">40</property> <property name="maxStatements">20</property> <property name="maxStatementsPerConnection">5</property> </named-config> </c3p0-config>
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于mybatis傳入?yún)?shù)一直為null的問題
這篇文章主要介紹了關(guān)于mybatis傳入?yún)?shù)一直為null的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07JAVA 實現(xiàn)二叉樹(鏈式存儲結(jié)構(gòu))
本篇文章主要介紹用JAVA 實現(xiàn)二叉樹,并提供實例.對二叉樹數(shù)據(jù)結(jié)構(gòu)很好的學習實踐,有需要的朋友可以參考下2016-07-07