我正在将 JDBC 连接池与 mysql 一起使用。这是我的代码
private static DataSource _ds;
/**
* create the data source if it doesn't exist
*/
private DataSource getDataSource() throws FileNotFoundException,
IOException, URISyntaxException
{
if (_ds != null)
return _ds;
PoolProperties p = new PoolProperties();
p.setUrl(url);
p.setDriverClassName(driver);
p.setUsername(username);
p.setTestOnBorrow(true);
if (password != null)
{
p.setPassword(password);
}
p.setValidationQuery(validationQuery);
p.setJdbcInterceptors(JDBC_INTERCEPTOR);
DataSource datasource = new DataSource();
datasource.setPoolProperties(p);
_ds = datasource;
return datasource;
}
/**
* gets a connection from the JDBC pool
*
* @throws SQLException
* @throws IOException
* @throws FileNotFoundException
* @throws URISyntaxException
*/
public Connection getConnection() throws SQLException,
FileNotFoundException, IOException, URISyntaxException
{
Connection con = getDataSource().getConnection();
con.setAutoCommit(false);
return con;
}
每当我想使用连接时,我都会这样做:
con = getInstance().getConnection();
stmt = con.createStatement();
resultSet = stmt.executeQuery(selectQuery);
问题是查询的结果不是实时的。也就是说,如果我更改数据库中的某些内容并提交,java 中的查询不会得到更改。如果从另一个应用程序更改数据库,也会发生同样的情况
注意:更改会在一段时间后进行,或者如果我重新启动 tomcat
我的代码有什么问题吗?无论如何要修复这个错误?
谢谢