程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 創建C3P0數據源

創建C3P0數據源

編輯:DB2教程

創建C3P0數據源


創建C3P0數據源,實際開發中直接用JDBC連接數據庫是非常少的,一般使用數據源的形式,C3P0是開源的數據源,實際項目用得很多:

1、增加maven的支持

 


	c3p0
	c3p0
	0.9.1.2


2、配置C3P0,默認配置文件c3p0-config.xml:

 

 





   
	
    root
    jdbc:mysql://localhost:3306/charts
    com.mysql.jdbc.Driver
    root

    5
    5
    5
    10

    25 
    5

  


3、引用數據源

 

 

package com.hexun.utils;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
 * JDBC 的工具類
 * 
 * 其中包含: 獲取數據庫連接, 關閉數據庫資源等方法.
 */
public class JDBCTools {
	
	//處理數據庫事務的
	//提交事務
	public static void commit(Connection connection){
		if(connection != null){
			try {
				connection.commit();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	//回滾事務
	public static void rollback(Connection connection){
		if(connection != null){
			try {
				connection.rollback();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	//開始事務
	public static void beginTx(Connection connection){
		if(connection != null){
			try {
				connection.setAutoCommit(false);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	private static DataSource dataSource = null;

	//數據庫連接池應只被初始化一次. 
	static{
		dataSource = new ComboPooledDataSource("c3p0");
	}
	
	public static Connection getConnection() throws Exception {
		return dataSource.getConnection();
	}

	public static void releaseDB(ResultSet resultSet, Statement statement,
			Connection connection) {

		if (resultSet != null) {
			try {
				resultSet.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (statement != null) {
			try {
				statement.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (connection != null) {
			try {
				//數據庫連接池的 Connection 對象進行 close 時
				//並不是真的進行關閉, 而是把該數據庫連接會歸還到數據庫連接池中. 
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

引用時直接調用靜態方法即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved