问题标签 [jdbcnamedparametertemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
417 浏览

java - 测试类中 NamedParameterJdbcTemplate 的 NoSuchBeanDefinitionException

我在 Spring Boot 应用程序中使用 JDBCTemplate 运行单元测试时遇到问题。我有以下配置代码:

这是针对存储库类的:

例如,通过从邮递员调用 Rest 服务来工作。我编写了这个单元测试来仅测试存储库部分:

但是当我运行 junit 测试时,我收到以下错误:

有人可以帮我弄清楚缺少什么吗?

0 投票
1 回答
175 浏览

spring - 使用 NamedParameterJdbcTemplate 插入批处理并返回完整对象

我正在尝试对表进行批量插入,然后使用新生成id的 s 读回完整的对象。

但是,这种方法给了我以下错误:org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of org.springframework.jdbc.core.namedparam.MapSqlParameterSource. Use setObject() with an explicit Types value to specify the type to use. 请参阅下面的堆栈跟踪。

如果我只想批量插入而不读回它,一切都会好起来的。然后我会用

但是,我还需要用它们id的 s 读回插入的值,但不确定namedParameterJdbcTemplate我可以使用什么方法。

TLDR:我想做批量插入,然后使用namedParameterJdbcTemplate但找不到正确的方法来读取插入的行。是否namedParameterJdbcTemplate以单一方法提供批量插入和选择?

0 投票
2 回答
246 浏览

spring - 带有 Mockito 模拟的 Spring Boot NamedParameterJdbcTemplate

尝试对定义为的方法进行单元测试:

在我的测试类中,我将测试方法定义为

在运行此测试方法时,我在被调用的方法(myMethod())中得到 NullPointerException。int[] 结果为空。我的理解是它应该从模拟中的存根中得到结果。请帮助我理解我做错了什么。

0 投票
1 回答
421 浏览

java - 无法在 Spring Boot NamedParameterJdbcTemplate 中使用插入或更新中的子查询进行批量更新

我正在尝试使用 NamedParameterJdbcTemplate batchupdate 插入多条记录。我能够在插入语句中不使用子查询的情况下插入记录。但是当我使用子查询时,它的返回dataintegrityviolationexception请找到下面的代码供您参考,

在上面的代码中,我使用子查询从公司表中获取 max(id)。如果我使用这个子查询,它会返回错误。如果我删除并硬编码一些价值,它可以正常工作。为什么批处理更新不接受子查询。我正在使用 DB2 数据库

0 投票
0 回答
65 浏览

java - 避免在 NamedParameterJdbcTemplate 参数化查询上插入引号

感谢您花时间阅读。

我正在尝试通过以下代码行使用与 Snowflake 的 JDBC 连接来执行查询:

以下是传递给执行方法的变量:

不幸的是,这会引发 SQL 错误:

如您所见,错误是传递给查询的参数之一 <CURRENT_DATE-365> 在运行时执行期间被引号包围。

我尝试手动执行不带引号的查询,它似乎工作正常。

如果您知道不带引号传递参数的方法,请告诉我。

尊敬的,标记

0 投票
0 回答
108 浏览

sql-server - 为 NamedParameterJdbcTemplate 分配的参数未采用

我正在使用这个 Spring Boot 应用程序。在这里,我需要获取 MS SQL 数据库中表的行数。

运行此程序时,我收到一条错误消息,提示我需要声明变量 @P0。

有没有人知道如何解决这个问题?

0 投票
1 回答
64 浏览

java - java - 如何使用namedparameterjdbctemplate java将间隔参数传递给sql请求

我正在处理 Java 中的 NamedParameterJdbcTemplate。我正在尝试通过 NamedParameterJdbcTemplate 将间隔参数(3 个月)传递给 sql 查询 DELETE FROM message WHERE dt_log <NOW () - INTERVAL ': period'; 我在 DAO 中为间隔参数传递了一个字符串类型的句点,并将其放入 mapSqlParameterSource.addValue ("period", period); 执行请求时,它会抛出以下错误:org.postgresql.util.PSQLException: ERROR: invalid input syntax for type interval: ': period',尽管我传递了正确的值“3 个月”(检查了整个请求pgAdmin)。我尝试以相同的方式将 PGInterval 对象传递给参数,但它给出了相同的错误。但是如果你不插入参数,请求本身就会起作用,但只需手动编写请求本身的时间间隔:'3 个月',如果您插入指向具有字符串类型的静态值的链接,其中在 sql 请求中指定了“3 个月”,则它可以工作。DAO 类代码如下所示。

也许有人可以告诉我我做错了什么?)

0 投票
0 回答
40 浏览

spring-boot - 使用 Oracle 的 Spring Boot 应用程序 - ORA-01000:使用 Spring Jdbctemplate 时超出最大打开游标

我知道互联网上有很多解决方案,但似乎没有什么对我有用。

我的 jdk11 应用程序的 pom.xml 文件中有以下条目

我正在使用配置如下的连接池

我只查询表没有添加或更新到 oracle 记录,像这样

所以每次我的应用程序查询它都会打开新的游标并且永远不会关闭它最终导致打开游标异常

PS我尝试添加 env 属性 spring.jdbc.getParameterType.ignore = true 没有工作

0 投票
0 回答
32 浏览

java - 命名参数 jdbc 模板选择更新

在一个带有spring的项目中,我想使用以下选择进行更新查询:

随着以下更新

curscom光标的名称在哪里。

可以curscom是常量还是每次运行查询时都必须更改名称?一个人将如何实现这一点?

我可以访问命名参数 jdbc 模板,但由于我无法控制的架构原因,我不能“超出”它(我不能只打开文档中定义的原始连接)。

一种可能性似乎是在相关的执行方法中使用准备好的语句回调并在那里设置游标名称,例如

模型

服务

0 投票
0 回答
26 浏览

spring-boot - Sprig Boot:上下文初始化期间遇到异常 - 应用程序启动失败 - UnsatisfiedDependencyException

更新:1 错误 测试工作人员] scaAnnotationConfigApplicationContext:上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration$DataSourceTransactionManagerConfiguration”的bean时出错:通过不满足的依赖关系表示构造函数参数 0:没有为依赖项 [javax.sql.DataSource] 找到类型为 [javax.sql.DataSource] 的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{}; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项 [javax.sql.DataSource] 找到类型 [javax.sql.DataSource] 的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注释:{} 2022-02-08 14:02:07.876 INFO 14036 --- [测试工作者] utoConfigurationReportLoggingInitializer :