最近由于一些表中每条数据量过大,导致查询时一条sql(100条)过了很久都没有查出。所以遇到这种情况时可以修改sql为一条一条查。
这时需要设置超时时间:
prepareStatement= con.prepareStatement(selectSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
// 设置超时时间为30s
prepareStatement.setQueryTimeout(30);
resultSet = ps.executeQuery();
这样就可以了,这时如果一条sql执行时间超过设置的时间,就会报java.sql.SQLRecoverableException
这个错,这时catch住这个异常再进行之后的处理即可。