1. 程式人生 > >C3p0連接池-Java(新手)

C3p0連接池-Java(新手)

void fig all date port java sys create source

 1 1 數據庫連接池 C3p0 和 Druid 
 2 
 3         1.1 定義 : 
 4 
 5             本質上就是個容器(集合)  存放數據庫連接的容器 當系統初始化以後  容器被創建 容器中就會申請一些連接對象 當用戶來訪問的數據庫的時候 從容器中取連接對象,用戶用完之後 歸還
 6 
 7         1.2  如何用:
 8 
 9           1.2.1 標準接口 Datasource  javax.sql包下
10 
11                      方法:getConnection();獲得鏈接
12 13       Connection.close();歸還 14 15           1.2.2 一般我們不實現這個接口 數據庫廠商或者連接池廠商來實現這個接口 16 17           1.2.3 C3P0 18 19      步驟: 20 21        1  導包 兩個包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12 22 23         2  定義配置文件 名稱 c3p0.properties c3p0-config.xml
24 25   路徑:將文件放到src目錄下 26 27         3  創建核心對象 數據庫連接池對象ComboPoolDataSource 28 29          4   獲取鏈接 getConnection

例1:


 1 package cn.Wuchuang.C3p0Druid;
 2 
 3 import com.mchange.v2.c3p0.ComboPooledDataSource;
 4 
 5 import javax.sql.DataSource;
 6 import
java.sql.Connection; 7 import java.sql.SQLException; 8 9 public class Demo1C3P0 { 10 public static void main(String[] args) throws SQLException { 11 // 1 導包 兩個包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12 12 // 2 定義配置文件 名稱 13 // 路徑:將文件放到src目錄下 14 // 3 創建核心對象 數據庫連接池對象ComboPoolDataSource 15 DataSource ds = new ComboPooledDataSource(); 16 // 4 獲取鏈接 getConnection 17 Connection conn = ds.getConnection(); 18 System.out.println(conn+"哈哈"); 19 } 20 }

例2:


 1 package cn.Wuchuang.C3p0Druid;
 2 
 3 import com.mchange.v2.c3p0.ComboPooledDataSource;
 4 
 5 import javax.sql.DataSource;
 6 import java.sql.Connection;
 7 
 8 public class Demo2C3P0 {
 9     public static void main(String[] args) throws Exception {
10         DataSource data = new ComboPooledDataSource();
11 
12         for (int i =1;i<=11;i++){
13             Connection conn = data.getConnection();
14             System.out.println(i+"  "+conn);
15             if (i==5){
16                 //歸還連接池。
17                 conn.close();
18             }
19         }
20     }
21 }

例3:


 1 package cn.Wuchuang.C3p0Druid;
 2 
 3 import com.alibaba.druid.pool.DruidDataSourceFactory;
 4 
 5 import javax.sql.DataSource;
 6 import java.io.IOException;
 7 import java.io.InputStream;
 8 import java.sql.Connection;
 9 import java.util.Properties;
10 
11 public class Demo3Druid {
12     public static void main(String[] args) throws Exception {
13         //加載文件。
14         Properties pro = new Properties();
15         InputStream in = Demo3Druid.class.getClassLoader().getResourceAsStream("druid.properties");
16         pro.load(in);
17         //獲得數據庫連接池對象、
18         //通過DruidDataSourceFactory
19         DataSource dats = DruidDataSourceFactory.createDataSource(pro);
20         //獲取鏈接。
21         Connection conn = dats.getConnection();
22         System.out.println(conn+"我被測試了");
23     }
24 }

例4:


 1 package cn.Wuchuang.C3p0Druid;
 2 
 3 import org.junit.Test;
 4 import org.springframework.jdbc.core.JdbcTemplate;
 5 import org.springframework.jdbc.support.JdbcUtils;
 6 
 7 import java.sql.Connection;
 8 import java.sql.PreparedStatement;
 9 import java.sql.SQLException;
10 
11 public class Demo4Druid {
12     @Test
13     public void Druids(){
14 
15             Connection conn = null;
16             PreparedStatement ppst = null;
17             try {
18                 //完成一個添加操作。
19                 //獲得鏈接。
20                 conn = JDBCUtils.getConnection();
21                 //定義SQL語句。
22                 String sql =("insert into salarys values(7,?,?)");
23                 //獲得執行的語句。
24                 ppst = conn.prepareStatement(sql);
25                 //給?賦值。
26                 ppst.setInt(1,610);
27                 ppst.setInt(2,800);
28                 //執行SQL語句。
29                 int i = ppst.executeUpdate();
30                 System.out.println(i);
31             } catch (Exception e) {
32                 e.printStackTrace();
33             }finally {
34                 JDBCUtils.close(conn,ppst);
35             }
36     }
37 }

JDBC工具類:


 1 package cn.Wuchuang.C3p0Druid;
 2 
 3 import javax.sql.DataSource;
 4 import java.sql.*;
 5 
 6 public class JDBCUtils {
 7     private static final String r = "root";
 8     private static final String p = "root";
 9     private static final String url = "jdbc:mysql:///semployee";
10     private static final String DRIVER = "com.mysql.jdbc.Driver";
11     //註冊驅動。
12     static{
13         try {
14             Class.forName(DRIVER);
15         } catch (Exception e) {
16             e.printStackTrace();
17         }
18     }
19     //得到數據庫鏈接。
20     public static Connection getConnection() throws Exception {
21         return DriverManager.getConnection(url,r,p);
22     }
23 
24     //關閉鏈接,執行打開的資源。
25     public static void close(Connection conn,Statement stmt){
26         if (stmt!=null){
27             try {
28                 stmt.close();
29             } catch (Exception e) {
30                 e.printStackTrace();
31             }
32         }
33         if (conn!=null){
34             try {
35                 conn.close();
36             } catch (Exception e) {
37                 e.printStackTrace();
38             }
39         }
40     }
41     //關閉所有打開的資源。
42     public static void close(Connection conn, Statement stmt, ResultSet rs){
43         if (stmt!=null){
44             try {
45                 stmt.close();
46             } catch (Exception e) {
47                 e.printStackTrace();
48             }
49         }if (conn!=null){
50             try {
51                 conn.close();
52             } catch (Exception e) {
53                 e.printStackTrace();
54             }
55         }
56         if (rs!=null){
57             try {
58                 rs.close();
59             } catch (Exception e) {
60                 e.printStackTrace();
61             }
62         }
63     }
64     }

C3p0連接池-Java(新手)