您的位置:首页 > 数据库

jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(1)

2009-06-12 17:06 1311 查看
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);
}
}



}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐