gpt4 book ai didi

java - spring JdbcTemplate 是如何识别数据类型的?

转载 作者:行者123 更新时间:2023-11-29 04:38:03 25 4
gpt4 key购买 nike

当将 spring JdbcTemplate 与准备好的语句一起使用时,我们可以单独设置参数的值,也可以只传递一个对象数组。

jdbctemplate.update(sql, arg1, arg2);

jdbctemplate.update(sql, new Object[]{arg1, arg2});

这两种方法都有效。但我想知道 jdbctemplate 如何知道在作为对象数组传递时将数据转换为与数据库列的类型相匹配。

两种方法有性能差异吗?

如何记录在数据库上执行的最终查询。为 org.springframework.jdbc 包启用 DEBUG 日志对我不起作用。

最佳答案

JdbcTemplate.update 的两次调用没有区别,事实上,您的两次调用都转到相同的方法。只有一个 update JdbcTemplate

中的方法

具有以下签名

public int update(String sql, Object... args) throws DataAccessException 

如您所见,最后一个参数是 Java 变量参数 (...) 而不是数组。因此,您可以为同一个变量参数提供单独的值或对象数组。

对于JdbcTemplate 如何知道将数据转换为与目标数据类型相匹配的问题,它只是创建一个PreparedStatement 并调用PreparedStatement.set* ** 方法基于提交的变量参数和值的顺序,实际上只检查给定值是否为 StringDateCalendar 并调用 PreparedStatement.setStringPreparedStatement.setTimestamp。对于其他所有内容,只需 PreparedStatement.setObject

关于java - spring JdbcTemplate 是如何识别数据类型的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40415295/

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