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 {
try {
return DriverManager.getConnection(poolName);
} catch (Exception e) {
logger.error(e);
return null;
}
}
public static Connection getConnection() throws SQLException {
Connection conn = null;
try {
/*
* //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) {
e.printStackTrace();
conn = null;
}
return conn;
}
public static void closeConnection(Statement stmt, Connection con) {
try {
if (stmt != null)
stmt.close();
} catch (Exception e) {
logger.error(e);
}
closeConnection(con);
}
public static void closeConnection(PreparedStatement pstmt, Connection con) {
try {
if (pstmt != null)
pstmt.close();
} catch (Exception e) {
logger.error(e);
}
closeConnection(con);
}
public static void closeConnection(CallableStatement cstmt, Connection con) {
try {
if (cstmt != null)
cstmt.close();
} catch (Exception e) {
logger.error(e);
}
closeConnection(con);
}
public static void close(CallableStatement cstmt, Connection con) {
try {
if (cstmt != null)
cstmt.close();
} catch (Exception e) {
logger.error(e);
}
closeConnection(con);
}
public static void closeConnection(ResultSet rs, PreparedStatement pstmt,
Connection con) {
closeResultSet(rs);
closePreparedStatement(pstmt);
closeConnection(con);
}
public static void closeConnection(ResultSet rs, PreparedStatement pstmt) {
closeResultSet(rs);
closePreparedStatement(pstmt);
}
public static void close(ResultSet rs, PreparedStatement pstmt) {
closeResultSet(rs);
closePreparedStatement(pstmt);
}
public static void close(ResultSet rs, PreparedStatement pstmt,
Connection con) {
closeResultSet(rs);
closePreparedStatement(pstmt);
closeConnection(con);
}
public static void closeConnection(Connection con) {
try {
if (con != null)
con.close();
} catch (Exception e) {
logger.error(e);
}
}
public static void close(Connection con) {
try {
if (con != null)
con.close();
} catch (Exception e) {
logger.error(e);
}
}
public static void closePreparedStatement(PreparedStatement pstmt) {
try {
if (pstmt != null)
pstmt.close();
} catch (Exception e) {
logger.error(e);
}
}
public static void close(PreparedStatement pstmt) {
try {
if (pstmt != null)
pstmt.close();
} catch (Exception e) {
logger.error(e);
}
}
public static void closeResultSet(ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
logger.error(e);
}
rs = null;
}
public static void close(ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
logger.error(e);
}
rs = null;
}
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);
closeTransactionConnection(con, abortTransaction);
}
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);
}
try
{
con.setAutoCommit(true);
}
catch(Exception e)
{
logger.error(e);
}
try
{
con.close();
}
catch(Exception e)
{
logger.error(e);
}
}
}