Spring Framework有两个类似的类:JdbcTemplate是旧的Java 1.4类,而SimpleJdbcTemplate是更新的,具有更好的方法.
JdbcTemplate有一个方法setQueryTimeout,它基本上允许我访问基础Statement对象上具有相同名称的方法.
有没有办法和SimpleJdbcTemplate做类似的事情?
解决方案:根据skaffman的回答,我自己从JdbcTemplate创建SimpleJdbcTemplate对象,所以现在我可以做任何我想做的事情.码:
JdbcTemplate jdbcTemplate = this.getJdbcTemplate();
jdbcTemplate.setQueryTimeout(30);
SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(jdbcTemplate);
有点满口,但完成工作.
更新:这确实比必要的更复杂.看到答案.
如果查看SimpleJdbcTemplate的源代码,您将看到它将其所有工作委托给JdbcTemplate对象,因此通过在JdbcTemplate上设置超时(或其他选项),您也可以在SimpleJdbcTemplate上隐式设置它们.
如果您通过SimpleJdbcDaoSupport.getSimpleJdbcTemplate()获取SimpleJdbcTemplate,那么JdbcTemplate将已经正确连接.
编辑:
例如:
public class MyDao extends SimpleJdbcDaoSupport {
public void doStuff() {
getJdbcTemplate().setQueryTimeout(x);
getSimpleJdbcTemplate().execute(...);
}
}
SimpleJdbcTemplate包含与getJdbcTemplate()检索的JdbcTemplate相同的JdbcTemplate.
如果你没有扩展SimpleJdbcDaoSupport,那么是的,你需要自己手动构建一个SimpleJdbcTemplate.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。