我有一个线程尝试使用 JDBCTemplate 连接到数据库,如下所示:
JDBCTemplate jdbcTemplate = new JdbcTemplate(dataSource);
try{
jdbcTemplate.execute(new CallableStatementCreator() {
@Override
public CallableStatement createCallableStatement(Connection con)
throws SQLException {
return con.prepareCall(query);
}
}, new CallableStatementCallback() {
@Override
public Object doInCallableStatement(CallableStatement cs)
throws SQLException {
cs.setString(1, subscriberID);
cs.execute();
return null;
}
});
} catch (DataAccessException dae) {
throw new CougarFrameworkException(
"Problem removing subscriber from events queue: "
+ subscriberID, dae);
}
我想确保如果上面的代码抛出 DataAccessException 或 SQLException,线程会等待几秒钟并尝试重新连接,比如再连接 5 次然后放弃。我怎样才能做到这一点?此外,如果在执行期间数据库出现故障并再次出现,我如何确保我的程序从中恢复并继续运行而不是抛出异常并退出?
提前致谢。