📄 gddbconnection.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 + -