我正在使用下面的代码片段为将由多个用户使用的Web应用程序创建连接对象的单例实例。在web应用程序中创建连接对象的单例实例
static {
try {
String driver = PropertyReader.getPropertyReader("driverClassName");
Class.forName(driver).newInstance();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static Connection conn = null;
private static synchronized Connection getDBConnection()
{
try{
if(conn == null || conn.isClosed()){
conn = null;
String URL = PropertyReader.getPropertyReader("url");
String userName = PropertyReader.getPropertyReader("username");
String password = PropertyReader.getPropertyReader("password");
conn = DriverManager.getConnection(URL,userName,password);
logger.info("Preparing Connection...");
}
else{
logger.info("Returning already prepared connection..");
}
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
该类将返回连接的相同实例,直到连接关闭或为空。 我想同一个连接将被不同机器上的所有用户共享,因为它是静态的。
如果一个用户将自动提交设置为关闭以提交几个语句作为事务,这是否会为其他用户创建问题,方法是限制其连接以禁用自动提交,或者如果一个用户使用了中间方式提交其事务con.commit()?
你应该更喜欢使用连接池..'Connection'只是一个JDBC接口..这取决于它是如何实现的。 – Shivam 2013-02-19 07:07:59