java - Spring JDBC 限制查询长度

标签 java spring oracle jdbc

我正在使用以下命令执行自定义构建的 DML 语句

namedParameterJdbcTemplate.update(sql, valueMap);

调用,其中sql是根据映射中的值构建的。这里我的 map 可能会变得非常大,因此 sql 也可能会变得非常长。据我了解,在Oracle中,查询的长度没有固定的数字,并且有很多因素(包括数据库配置)可能会影响该值,但我想将查询长度限制为固定数字。

限制查询长度的最佳方法是什么? spring-batch API 在这里有用吗?

提前感谢您的指点。

最佳答案

我会选择以下方法之一:

  1. 临时表 - 将数据批量插入到临时表中,然后对该表使用 MERGE INTO 语句。

  2. 为您的行创建 SQL 类型并仅绑定(bind)该一个参数。 (谷歌搜索 OraData - 这有点棘手,但它有效)

两者都将使您能够进行小型静态查询,从而避免太大查询(及其解析、污染库缓存等)的潜在问题。

关于java - Spring JDBC 限制查询长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28052200/

相关文章:

java - 如何在 Android 中修复 "The application may be doing too much work on its main thread"?

java - Spring MVC + Hibernate @Transactional 异常后不回滚

java - data.sql 文件未在 Spring Boot 中将数据泵入表

database - 如何按照磁盘上的物理顺序对表行进行重新排序?

java - 如何使用Android NFC API获取智能卡ATR?

java - Maven : Unpack-Dependencies . ..然后忘记它们

java - 更改父类(super class)从子类实现的接口(interface)的值会影响所有实例

java - extdirectspring 方法不起作用

oracle - 如何在 Oracle 中将 TIMESTAMP 列更新为 TIMESTAMP WITH TIME ZONE

sql - 在oracle中查找两个大表之间的差异