加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在SimpleJdbcTemplate上设置QueryTimeout?

发布时间:2020-12-15 01:44:47 所属栏目:大数据 来源:网络整理
导读:Spring Framework有两个类似的类:JdbcTemplate是旧的Java 1.4类,而SimpleJdbcTemplate是更新的,具有更好的方法. JdbcTemplate有一个方法setQueryTimeout,它基本上允许我访问基础Statement对象上具有相同名称的方法. 有没有办法和SimpleJdbcTemplate做类似的

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的替代品,它只是对java5友好的补充,对于某些可以充分利用varargs和泛型的操作.

如果查看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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读