jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息
package com.yanek.base.database;
import java.sql.callablestatement;
import java.sql.connection;
import java.sql.drivermanager;
import java.sql.preparedstatement;
import java.sql.resultset;
import java.sql.sqlexception;
import java.sql.statement;
import org.apache.log4j.logger;
public class connectionmanager {
static logger logger = logger.getlogger(connectionmanager.class.getname());
public static void main(string[] args) {
try {
system.out.println("conn=" + connectionmanager.getconnection());
} catch (exception e) {
// todo auto-generated catch block
e.printstacktrace();
}
}
private static string poolname = null;
private static boolean thirdconnectionpoolenabled = false;
private static object providerlock = new object();
public connectionmanager() {
/**
* 从指定连接池获取数据库连接
*
* @param poolname
* 连接池名称
* @return
* @throws sqlexception
*/
public static connection getconnection(final string poolname)
throws sqlexception {
return drivermanager.getconnection(poolname);
logger.error(e);
return null;
public static connection getconnection() throws sqlexception {
connection conn = null;
/*
* //start 连接池 context = new initialcontext(); initialcontext
* context = new initialcontext(); ds =
* (datasource)context.lookup("jdbc/oracleds"); conn =
* ds.getconnection(); //end 连接池
*/
* //这是odbc方式连接方式 string driver="sun.jdbc.odbc.jdbcodbcdriver";
* string url="jdbc:odbc:newjchtdb"; string username="sa"; string
* password="";
*
// 这里通过配置文件实现数据库连接参数的设置
string url = (string) configutil.getconfiginfo().get("url");
// system.out.println("url100="+url);
string driver = (string) configutil.getconfiginfo().get("driver");
// system.out.println("driver="+driver);
string username = (string) configutil.getconfiginfo().get("user");
// system.out.println("user="+username);
string password = (string) configutil.getconfiginfo().get(
"password");
// system.out.println("password="+password);
class.forname(driver);
conn = drivermanager.getconnection(url, username, password);
//conn = getconnectionfrompool();
} catch (sqlexception se) {
// throw new servletexception(se);
catch (exception e) {
conn = null;
return conn;
public static void closeconnection(statement stmt, connection con) {
if (stmt != null)
stmt.close();
closeconnection(con);
public static void closeconnection(preparedstatement pstmt, connection con) {
if (pstmt != null)
pstmt.close();
public static void closeconnection(callablestatement cstmt, connection con) {
if (cstmt != null)
cstmt.close();
public static void close(callablestatement cstmt, connection con) {
public static void closeconnection(resultset rs, preparedstatement pstmt,
connection con) {
closeresultset(rs);
closepreparedstatement(pstmt);
public static void closeconnection(resultset rs, preparedstatement pstmt) {
public static void close(resultset rs, preparedstatement pstmt) {
public static void close(resultset rs, preparedstatement pstmt,
public static void closeconnection(connection con) {
if (con != null)
con.close();
public static void close(connection con) {
public static void closepreparedstatement(preparedstatement pstmt) {
public static void close(preparedstatement pstmt) {
public static void closeresultset(resultset rs) {
if (rs != null)
rs.close();
} catch (sqlexception e) {
rs = null;
public static void close(resultset rs) {
public static connection gettransactionconnection() throws sqlexception {
connection con = getconnection();
con.setautocommit(false);
return con;
/**
* 通过连接池获取事务连接
* @param poolname string
* @return connection
* @throws sqlexception
*/
public static connection gettransactionconnection(final string poolname)
throws sqlexception
{
connection con = getconnection(poolname);
con.setautocommit(false);
return con;
}
public static void closetransactionconnection(preparedstatement pstmt, connection con, boolean aborttransaction)
try
{
if(pstmt != null)
pstmt.close();
}
catch(exception e)
logger.error(e);
closetransactionconnection(con, aborttransaction);
}
public static void closetransactionconnection(resultset rs,preparedstatement pstmt, connection con, boolean aborttransaction)
closeresultset(rs);
closepreparedstatement(pstmt);
public static void closetransactionconnection(connection con, boolean aborttransaction)
if(con == null)
return;
try
{
if(aborttransaction)
con.rollback();
else
con.commit();
}
catch(exception e)
logger.error(e);
con.setautocommit(true);
con.close();
}