⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gddbconnection.java

📁 j2ee程序。 spring、xml、 实现增加内容选项。
💻 JAVA
字号:
package com.gd.jdbc.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;

import com.gd.jdbc.DbConnection;
import com.gd.jdbc.DbConnectionManager;
import com.mchange.v2.c3p0.ComboPooledDataSource;

public class GdDbConnection implements DbConnection {
	//private static BasicDataSource  dataSource = null;
	//private static ComboPooledDataSource cpds = null;
	private String DB_DRIVER = "com.mysql.jdbc.Driver";
	private String DB_User = "root";
	private String DB_PASSWD = "";
	private String DATASRC_URL = "jdbc:mysql://localhost/myApp?useUnicode=true;characterEncoding=GBK";
	
//	private String DB_DRIVER = "com.ibm.db2.jcc.DB2Driver";
//	private String DB_User = "javauser";
//	private String DB_PASSWD = "javauser";
//	private String DATASRC_URL = "jdbc:db2://10.1.1.10:50000/dbjl";
	
//	String DB_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
//	String DB_User = "sa";
//	String DB_PASSWD = "sa";
//	String DATASRC_URL = "jdbc:microsoft:sqlserver://10.1.19.55;DatabaseName=test";
	
	private Connection conn;
    private Object objId;
    private boolean isClosed = false;
	
	public GdDbConnection(Object obj) {
		this.objId = obj;
//		try {
////			//只初始化一次BasicDataSource
//			//if (dataSource == null) {
////			if (cpds == null) {
//////				Properties p = new Properties();
//////		    	p.setProperty("driverClassName", "com.mysql.jdbc.Driver");
//////		    	p.setProperty("url", "jdbc:mysql://localhost/myApp");
//////		    	p.setProperty("password", "root");
//////		    	p.setProperty("username", "root");
//////		    	p.setProperty("maxActive", "30");
//////		    	p.setProperty("maxIdle", "10");
//////		    	p.setProperty("maxWait", "1000");
//////		    	p.setProperty("removeAbandoned", "false");
//////		    	p.setProperty("removeAbandonedTimeout", "120");
//////		    	p.setProperty("testOnBorrow", "true");
//////		    	p.setProperty("logAbandoned", "true");
//////		    	dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(p);
////				cpds = new ComboPooledDataSource();
////				cpds.setDriverClass("com.mysql.jdbc.Driver"); 
////				cpds.setJdbcUrl( "jdbc:mysql://localhost/myApp" );
////				cpds.setUser("root");
////				cpds.setPassword("root");
////				cpds.setMaxStatements(1000);
////				cpds.setAcquireIncrement(10);//设置每次增长的连接池连接数的个数
////				//设置初始的连接池连接数
////				cpds.setInitialPoolSize(50);
////				//设置最小的连接池连接数
////				cpds.setMinPoolSize(20);
////				//设置最大的连接池连接数
////				cpds.setMaxPoolSize(100);
//
//
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
		
	}
	
	/**
     * 该方法用来获取数据库连接
     */
	public Connection getConnection(Object obj) throws SQLException, ClassNotFoundException {
		try {
			if (this.objId == obj && this.conn != null && !this.isClosed()) {
				return conn;
            } else {
            	//conn = DbConnectionManager.getConnection("mysql");
            	//Class.forName(DB_DRIVER);
                //conn = DriverManager.getConnection(DATASRC_URL, DB_User, DB_PASSWD);
            	conn = ((DataSource) new InitialContext().lookup("java:/comp/env/jdbc/opendb")).getConnection();
            	//Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
            	//conn = DriverManager.getConnection("proxool.gd:com.mysql.jdbc.Driver:jdbc:mysql://localhost:3306/myApp","root","root");
            	//conn = DriverManager.getConnection("proxool.mysql");
            	//conn = dataSource.getConnection();
            	//conn = cpds.getConnection();
            }			
		} catch (SQLException e) {
			throw new SQLException("获取java:/comp/env/jdbc/opendb失败" + obj.getClass().getName() + e);
			//throw new SQLException("获取连接失败" + obj.getClass().getName() + e);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}

	/**
     * 进行事务操作
     */
	public void beginTransaction(Object obj) throws SQLException {
		try {
            if (this.objId == obj && this.conn != null && !this.conn.isClosed()) {
            	this.conn.setAutoCommit(false);
            }
        } catch (SQLException e) {
            throw new SQLException("beginTransaction连接失败" + obj.getClass().getName() + e);
        }
	}
	/**
     * 关闭数据库连接
     */
	public void close(Object obj) throws SQLException {
		try {
            if (this.objId == obj && this.conn != null && !this.conn.isClosed()) {
                this.conn.close();
            	//DbConnectionManager.returnConnection("mysql", conn);
                isClosed = true;
            }
        } catch (SQLException e) {
            throw new SQLException("关闭连接失败" + obj.getClass().getName() + e);
        }
	}
	/**
     * 提交数据操作
     */
	public void commit(Object obj) throws SQLException {
		try {
            if (this.objId == obj && this.conn != null && !this.conn.isClosed()) {
                this.conn.commit();
            }
        } catch (SQLException e) {
            throw new SQLException("commit连接失败" + obj.getClass().getName() + e);
        }
	}
	/**
     * 回复数据操作
     */
	public void rollback(Object obj) throws SQLException {
		try {
            if (this.objId == obj && this.conn != null && !this.conn.isClosed()) {
                this.conn.rollback();
            }
        } catch (SQLException e) {
            throw new SQLException("rollback连接失败" + obj.getClass().getName() + e);
        }
	}

	/**
	 * @return the isClosed
	 */
	public boolean isClosed() throws SQLException {
		return isClosed;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -