【问题标题】:fetch size for NamedParameterJdbctemplate?获取 NamedParameterJdbctemplate 的大小?
【发布时间】:2018-05-01 21:30:15
【问题描述】:

我正在解决一个问题,该问题涉及我编写一个查询以从数据库中获取数千条记录。我将使用的查询将在 WHERE 条件中包含 2 个 IN 子句。

据我所知,这可能是有限的,请纠正我,对于这个用例我不能使用 jdbctemplate。我将不得不转向 NamedParameterJdbcTemplate,因为 NamedParameterJdbcTemplate 为我们提供了使用 IN 子句的灵活性。

现在我正在寻找答案的问题如下。

Q.> NamedParameterJdbcTemplate 没有 setFetchSize 方法。有没有办法为 NamedParameterJdbcTemplate 设置获取大小?

Q> 有人知道 NamedParameterJdbcTemplate 的默认提取大小吗?对于 JdbcTemplate,它设置为 10。我知道。 NamedParameterJdbcTemplate 呢?

Q> 即使我使用 NamedParameterJdbcTemplate 我的问题也不会得到解决,因为如果我们假设 NamedParameterJdbcTemplate 的获取大小也是 10,那么获取几千条记录仍然会占用我大量的应用程序时间。

任何人都可以提出解决方案或指导我正确的方向吗?

【问题讨论】:

    标签: java spring spring-jdbc jdbctemplate named-parameters


    【解决方案1】:

    NamedParameterJdbcTemplate 代表一个普通的JdbcTemplate 用于所有 JDBC 工作。因此,您可以创建您的NamedParameterJdbcTemplate,并在构造函数中传入自定义的JdbcTemplate。如果您在传入的JdbcTemplate 上自定义fetchSize,那么NamedParameterJdbcTemplate 也将使用它。见-https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.html#NamedParameterJdbcTemplate-org.springframework.jdbc.core.JdbcOperations-

    【讨论】:

    • 如此简化,看起来像 NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(dataSource);模板.getJdbcTemplate().setFetchSize(50); ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2015-08-20
    • 2014-09-23
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多