gpt4 book ai didi

jdbc - 如何在 SimpleJdbcTemplate 上设置QueryTimeout?

转载 作者:行者123 更新时间:2023-12-04 20:25:38 33 4
gpt4 key购买 nike

Spring 框架有两个相似的类:JdbcTemplate 是旧的 Java 1.4 类,而 SimpleJdbcTemplate 是较新的,具有更好的方法。

JdbcTemplate 有一个方法setQueryTimeout ,这基本上使我可以访问基础 Statement 对象上具有相同名称的方法。

有什么方法可以用 SimpleJdbcTemplate 做类似的事情吗? ?

解决方案 :根据 skaffman 的回答,我创建了 SimpleJdbcTemplateJdbcTemplate 反对我自己,所以现在我可以为所欲为。代码:

JdbcTemplate jdbcTemplate = this.getJdbcTemplate();
jdbcTemplate.setQueryTimeout(30);
SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(jdbcTemplate);

有点拗口,但完成了工作。

更新 : 这确实比必要的复杂。看答案。

最佳答案

SimpleJdbcTemplat e 不能替代 JdbcTemplate ,它只是对它的 java5 友好的补充,对于可以充分利用可变参数和泛型的某些操作。

如果您查看 SimpleJdbcTemplate 的来源,您会看到它将所有工作委托(delegate)给 JdbcTemplate对象,因此通过在 JdbcTemplate 上设置超时(或其他选项) ,您将它们隐式设置在 SimpleJdbcTemplate还。

如果您正在获取 SimpleJdbcTemplate通过 SimpleJdbcDaoSupport.getSimpleJdbcTemplate() ,然后是 JdbcTemplate已经正确接线。

编辑:

例如:

public class MyDao extends SimpleJdbcDaoSupport {
public void doStuff() {
getJdbcTemplate().setQueryTimeout(x);
getSimpleJdbcTemplate().execute(...);
}
}

SimpleJdbcTemplate 包含与 getJdbcTemplate() 检索到的相同的 JdbcTemplate。

如果你不扩展 SimpleJdbcDaoSupport,那么是的,你需要自己手动构造一个 SimpleJdbcTemplate。

关于jdbc - 如何在 SimpleJdbcTemplate 上设置QueryTimeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206270/

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