<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    甜咖啡

    我的IT空間

    c3p0連接池

    package db;
    import java.beans.PropertyVetoException;
    import java.sql.Connection;
    import java.sql.SQLException;
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    public class DBPool {
    private ComboPooledDataSource dataSource;
    public static Connection con;
    public DBPool() {
    try {
    dataSource = new ComboPooledDataSource();
    dataSource.setUser("test");
    dataSource.setPassword("test");
    dataSource.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:orcl");
    dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver");
    dataSource.setInitialPoolSize(2);
    dataSource.setMinPoolSize(1);
    dataSource.setMaxPoolSize(10);
    dataSource.setMaxStatements(50);
    dataSource.setMaxIdleTime(60);
    dataSource.setAcquireRetryAttempts(3);   
    } catch (PropertyVetoException e) {
    }
    }
    public final static DBPool getInstance() {
    return new DBPool();
    }
    public final Connection getConnection() {
    try {
    return dataSource.getConnection();
    } catch (SQLException e) {
    return null;
    }
    }

            //測(cè)試方法
    public static void main(String[] args) throws SQLException {
    con = DBPool.getInstance().getConnection();
    System.out.println(con);
    try {
    if (con != null){con.close();}
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }


       //初始化時(shí)獲取三個(gè)連接,取值應(yīng)在minPoolSize與maxPoolSize之間。Default: 3 initialPoolSize  
        cpds.setInitialPoolSize(initialPoolSize);   
        //連接池中保留的最大連接數(shù)。Default: 15 maxPoolSize   
        cpds.setMaxPoolSize(maxPoolSize);
        //連接池中保留的最小連接數(shù)。   
        cpds.setMinPoolSize(minPoolSize);
        //獲得連接的最大等待毫秒數(shù)。Default: 1000 acquireRetryDelay
        cpds.setAcquireRetryDelay(acquireRetryDelay);
        //最大空閑時(shí)間,60秒內(nèi)未使用則連接被丟棄。若為0則永不丟棄。Default: 0 maxIdleTime   
        cpds.setMaxIdleTime(maxIdleTime);
        //當(dāng)連接池中的連接耗盡的時(shí)候c3p0一次同時(shí)獲取的連接數(shù)。Default: 3 acquireIncrement   
        //cpds.setAcquireIncrement(3);   
        //每60秒檢查所有連接池中的空閑連接。Default: 0 idleConnectionTestPeriod   
        //cpds.setIdleConnectionTestPeriod(60);
        //連接關(guān)閉時(shí)默認(rèn)將所有未提交的操作回滾。Default: false autoCommitOnClose   
        //cpds.setAutoCommitOnClose(true);
        //JDBC的標(biāo)準(zhǔn)參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatements數(shù)量。但由于預(yù)緩存的statements屬于單個(gè)connection而不是整個(gè)連接池。所以設(shè)置這個(gè)參數(shù)需要考慮到多方面的因素。如果maxStatements與maxStatementsPerConnection均為0,則緩存被關(guān)閉。Default: 0
        //cpds.setMaxStatements(1);

        //maxStatementsPerConnection定義了連接池內(nèi)單個(gè)連接所擁有的最大緩存statements數(shù)
        //cpds.setMaxStatementsPerConnection(100);

        //定義所有連接測(cè)試都執(zhí)行的測(cè)試語句。在使用連接測(cè)試的情況下這個(gè)一顯著提高測(cè)試速度。注意:測(cè)試的表必須在初始數(shù)據(jù)源的時(shí)候就存在。Default: null preferredTestQuery  
        //cpds.setPreferredTestQuery("select sysdate from dual");   
        // 因性能消耗大請(qǐng)只在需要的時(shí)候使用它。如果設(shè)為true那么在每個(gè)connection提交的   
        // 時(shí)候都將校驗(yàn)其有效性。建議使用idleConnectionTestPeriod或automaticTestTable   
        // 等方法來提升連接測(cè)試的性能。Default: false testConnectionOnCheckout   
        //cpds.setTestConnectionOnCheckout(true);
        //如果設(shè)為true那么在取得連接的同時(shí)將校驗(yàn)連接的有效性。Default: false testConnectionOnCheckin   
        //cpds.setTestConnectionOnCheckin(true);   
        //定義在從數(shù)據(jù)庫獲取新連接失敗后重復(fù)嘗試的次數(shù)。Default: 30 acquireRetryAttempts   
        //cpds.setAcquireRetryAttempts(30);     
        //獲取連接失敗將會(huì)引起所有等待連接池來獲取連接的線程拋出異常。但是數(shù)據(jù)源仍有效   
        //保留,并在下次調(diào)用getConnection()的時(shí)候繼續(xù)嘗試獲取連接。如果設(shè)為true,那么在嘗試   
        //獲取連接失敗后該數(shù)據(jù)源將申明已斷開并永久關(guān)閉。Default: false breakAfterAcquireFailure   
        //cpds.setBreakAfterAcquireFailure(false);   

      //兩次連接中間隔時(shí)間,單位毫秒。Default: 1000 acquireRetryDelay
      cpds.setAcquireRetryDelay(60000);

    java.lang.AbstractMethodError: oracle.jdbc.driver.OracleResultSetImpl.getClob(異常解決辦法

    最近遇到了一個(gè)頭痛的問題,可能大家也遇到過。經(jīng)過多番的詢問與查找,終于知道問題原因的所在:異常內(nèi)容如下:

    java.lang.AbstractMethodError: oracle.jdbc.driver.OracleResultSetImpl.getClob(Ljava/lang/String;)Ljava/sql/Clob;

    問題原因:Oracle驅(qū)動(dòng)版本不對(duì)

    解決辦法:在Oracle服務(wù)器上找到這個(gè)驅(qū)動(dòng),然后cp到Apache的lib目錄下,并同是修改環(huán)境變量classpath,保證這個(gè)lib/classes12.jar在最前面;修改完后,重新啟動(dòng)服務(wù),問題就可以解決。

    (ojdbc14.jar在classes12.jar前面)

     

    posted on 2012-09-20 15:21 甜咖啡 閱讀(5968) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    導(dǎo)航

    <2012年9月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    我參與的團(tuán)隊(duì)

    隨筆檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产亚洲精品免费视频播放| 亚洲人成网站日本片| 国产猛烈高潮尖叫视频免费| 韩国二级毛片免费播放| 亚洲人成无码www久久久| 亚洲阿v天堂在线| 国产亚洲精品无码专区| 亚洲色偷偷av男人的天堂| 亚洲国产精品无码中文lv| 一区二区视频在线免费观看| 久久不见久久见免费视频7| 91在线视频免费91| 国产亚洲情侣一区二区无| 香蕉免费在线视频| 成人国产mv免费视频| 91亚洲精品第一综合不卡播放| 亚洲黄色免费网站| 亚洲色偷拍区另类无码专区| 一级毛片免费毛片毛片| 国产精品亚洲片在线| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 国产亚洲精彩视频| 亚洲精品在线免费看| 亚洲私人无码综合久久网| 成全高清在线观看免费| 国产老女人精品免费视频| 一级毛片在线免费视频| 亚洲第一视频网站| 三上悠亚在线观看免费| 亚洲欧洲国产综合| 精品无码AV无码免费专区| 日韩亚洲产在线观看| 日本视频一区在线观看免费| 亚洲精品午夜国产VA久久成人| 69视频在线是免费观看| 精品国产亚洲AV麻豆| 日本高清免费中文字幕不卡| 二个人看的www免费视频| 亚洲人6666成人观看| 亚洲免费一区二区| 亚洲AV无码国产精品永久一区|