写法一:
Connection conn=ConnectionFactory.getInstance().getConnection();
Object o = DbUtil.getInfo(request, conn);
写法二:
Object o = DbUtil.getInfo(request, ConnectionFactory.getInstance().getConnection());
哪个晓得写法一与写法二是什么原因导致结果不一样,写法一正常,写法二多线程并发conn为空。小弟在此先感谢了!
public class ConnectionFactory
{
private static final Logger log = Logger.getLogger(ConnectionFactory.class);
private static ConnectionFactory instance = new ConnectionFactory();
public Connection connection;
private DataSource dataSource;
public String dataSourceType;
public ConnectionFactory()
{
connection = null;
dataSourceType = "1";
}
public static ConnectionFactory getInstance()
{
return instance;
}
public Connection getConnection()
{
try
{
if (connection == null || connection.isClosed())
connection = dataSource.getConnection();
}
catch (Exception e)
{
e.printStackTrace();
log.error("获取数据库连接失败");
}
return connection;
}
public DataSource getDataSource()
{
return dataSource;
}
public void setDataSource(DataSource dataSource)
{
this.dataSource = dataSource;
}
public String getDataSourceType()
{
return dataSourceType;
}
public void setDataSourceType(String dataSourceType)
{
this.dataSourceType = dataSourceType;
}
}