gpt4 book ai didi

java - JDBCTemplate 挂起

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:14 25 4
gpt4 key购买 nike

我正在使用 JDBCTemplate。对于一项特定查询,JDBCTemplate 在调用超过 3-4 次后挂起,有时在尝试 15-20 次后挂起。我没有在我的代码中发现任何错误。

private String getXXX(String table)
{
System.out.println("Test 1");
final List<String> data = getJdbcTemplate().queryForList(SELECT_TBL_NME,
new Object[] { table }, String.class);
System.out.println("Test 2");
ret = data.size() > 0 ? data.get(0) : null;
return ret;
}

如果该函数被调用超过 15 次,有时甚至在第 3 次或第 4 次调用之后,控制台会卡在“测试 1”处,不会出现任何错误。

最佳答案

问题似乎是您没有关闭连接。

final List data = getJdbcTemplate().queryForList(SELECT_TBL_NME, new Object[] { table}, String.class);

上面的行永远不会结束,因为 JdbcTemplate 正在等待从数据库获取连接。

因此,如果您的数据库无法为您提供连接,您的应用程序就会等待,等待,等待,并且它不会对时间执行任何操作。

可能的修复:由于您使用的是 Spring,请检查您是否没有在 queryForList 方法之外进行操作。

几个月前我遇到了同样的问题,因为我在 queryForList 方法之外调用 ResultSet.getMetaData() 并且没有释放/关闭连接。

关于java - JDBCTemplate 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11524127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com