if (tl.get() == null || ((Connection) tl.get()).isClosed()) {
conn = DBConnection.getInstance().getConnection();
if (beginTrans) {
conn.setAutoCommit(false);
}
tl.set(conn);
}
}
public static Connection getConnection() throws Exception {
return (Connection) tl.get();
}
public static void close() throws SQLException {
try {
((Connection) tl.get()).setAutoCommit(true);
} catch (Exception e) {
}
((Connection) tl.get()).close();
tl.set(null);
}
public static void commit() throws SQLException {
try {
((Connection) tl.get()).commit();
} catch (Exception e) {
}
try {
((Connection) tl.get()).setAutoCommit(true);
} catch (Exception e) {
}
}
public static void rollback() throws SQLException {
try {
((Connection) tl.get()).rollback();
} catch (Exception e) {
}
try {
((Connection) tl.get()).setAutoCommit(true);
} catch (Exception e) {
}
}
}
2.6.2 DBConnection类
package sky.org.util.db;
public class DBConnection {
private static DBConnection instance = null;
private static String driverClassName = null;
private static String connectionUrl = null;
private static String userName = null;
private static String password = null;
private static Connection conn = null;
private static Properties jdbcProp = null;
private DBConnection() {
}
private static Properties getConfigFromPropertiesFile() throws Exception {
Properties prop = null;
prop = JdbcProperties.getPropObjFromFile();
return prop;
}
private static void initJdbcParameters(Properties prop) {
driverClassName = prop.getProperty(Constants.DRIVER_CLASS_NAME);
connectionUrl = prop.getProperty(Constants.CONNECTION_URL);
userName = prop.getProperty(Constants.DB_USER_NAME);
password = prop.getProperty(Constants.DB_USER_PASSWORD);
}
private static void createConnection() throws Exception {
Class.forName(driverClassName);
conn = DriverManager.getConnection(connectionUrl, userName, password);
}
public static Connection getConnection() throws Exception {
return conn;
}
public synchronized static DBConnection getInstance()throws Exception{
if (instance == null) {
jdbcProp = getConfigFromPropertiesFile();
instance = new DBConnection();
}
initJdbcParameters(jdbcProp);
createConnection();
return instance;
}
}
2.6.3 JdbcProperties类
package sky.org.util.db;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.*;
public class JdbcProperties {
private static Log logger = LogFactory.getLog(JdbcProperties.class);
public static Properties getPropObjFromFile() {
Properties objProp = new Properties();
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
URL url = classLoader.getResource(Constants.JDBC_PROPERTIES_FILE);
if (url == null) {
classLoader = ClassLoader.getSystemClassLoader();
url = classLoader.getResource(Constants.JDBC_PROPERTIES_FILE);
}
File file = new File(url.getFile());
InputStream inStream = null;
try {
inStream = n