Java使用MySQL實現連線池程式碼例項
阿新 • • 發佈:2020-03-22
官方:資料庫連線池(Connection pooling)是程式啟動時建立足夠的資料庫連線,並將這些連線組成一個連線池,由程式動態地對連線池中的連線進行申請,使用,釋放。
理解:建立資料庫連線池是一個很耗時的操作,也容易對資料庫造成安全隱患。所以,在程式初始化的時候,集中建立多個數據庫連線池,並把他們集中管理,供程式使用,可以保證較快的資料庫讀寫速度,還更加的安全可靠。
手動配置連線池:
/** * 手動設定連線池 */ public void demo1(){ // 獲得連線: Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ // 建立連線池: ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 設定連線池的引數: dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql:///jdbctest"); dataSource.setUser("root"); dataSource.setPassword("abc"); dataSource.setMaxPoolSize(20); dataSource.setInitialPoolSize(3); // 獲得連線: conn = dataSource.getConnection(); // 編寫Sql: String sql = "select * from user"; // 預編譯SQL: pstmt = conn.prepareStatement(sql); // 設定引數 // 執行SQL: rs = pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("uid")+" "+rs.getString("username")+" "+rs.getString("password")+" "+rs.getString("name")); } }catch(Exception e){ e.printStackTrace(); }finally{ JDBCUtils.release(rs,pstmt,conn); } }
使用配置檔案配置連線池:
配置檔案xml如下:
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///jdbctest</property> <property name="user">root</property> <property name="password">abc</property> <property name="initialPoolSize">5</property> <property name="maxPoolSize">20</property> </default-config> </c3p0-config>
程式碼如下:
/** * 使用配置檔案的方式 */ public void demo2(){ Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ /*// 獲得連線: ComboPooledDataSource dataSource = new ComboPooledDataSource();*/ // 獲得連線: // conn = dataSource.getConnection(); conn = JDBCUtils2.getConnection(); // 編寫Sql: String sql = "select * from user"; // 預編譯SQL: pstmt = conn.prepareStatement(sql); // 設定引數 // 執行SQL: rs = pstmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("uid")+" "+rs.getString("username")+" "+rs.getString("password")+" "+rs.getString("name")); } }catch(Exception e){ e.printStackTrace(); }finally{ JDBCUtils2.release(rs,conn); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。