package org.taobao88.taobao.BD;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public final class ConnectionPool {
private static ConnectionPool pool = null;
public static ConnectionPool getPool() {
if (pool == null) {
try {
pool = new ConnectionPool();
} catch (NamingException e) {
throw new RuntimeException(e);
}
}
return pool;
}
private DataSource dataSource = null;
private ConnectionPool() throws NamingException {
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
dataSource = (DataSource) envContext.lookup("/jdbc/taobao");
}
public Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
public static void closeDbResources(Connection connection, PreparedStatement statement) {
closeStatement(statement);
closeConnection(connection);
}
public static void closeDbResources(Connection connection, PreparedStatement statement, ResultSet resultSet) {
closeResultSet(resultSet);
closeStatement(statement);
closeConnection(connection);
}
public static void closeConnection(Connection connection) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
}
}
}
public static void closeStatement(PreparedStatement statement) {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
}
}
}
public static void closeResultSet(ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
}
}
}
}