public
class ConnectionManager
{
public
static
final ThreadLocal threadLocal =
new ThreadLocal();
@SuppressWarnings(
"unchecked")
public
static Connection getCurrentConnection()
{
Connection conn = (Connection) threadLocal.get();
if (conn ==
null)
{
try
{
conn = ConnectionPool.getInstance().getConnection();
// 得到鏈接
threadLocal.set(conn);
}
catch (DBConnectionException e)
{
e.printStackTrace();
}
}
try
{
while (conn.isClosed())
{
conn = ConnectionPool.getInstance().getConnection();
threadLocal.set(conn);
}
}
catch (Exception e)
{
e.printStackTrace();
}
return conn;
}
@SuppressWarnings(
"unchecked")
public
static
void closeConnection()
{
Connection conn = (Connection) threadLocal.get();
threadLocal.set(
null);
if (conn !=
null)
{
try
{
ConnectionPool.getInstance().freeConnection(conn);
}
catch (DBConnectionException e)
{
e.printStackTrace();
}
}
}
public
static
void rollback()
{
try
{
ConnectionManager.getCurrentConnection().rollback();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
public
static
void commit()
{
try
{
ConnectionManager.getCurrentConnection().commit();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
public
static
void setAutoCommit(
boolean bool)
{
try
{
ConnectionManager.getCurrentConnection().setAutoCommit(bool);
}
catch (SQLException e) { e.printStackTrace(); } } }