gpt4 book ai didi

java - 如何在 JDBC PreparedStatement 中设置公式

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:33:30 26 4
gpt4 key购买 nike

我有一个 PreparedStatement,我用它来插入一堆包含大量列数据的行。但是,对于其中一列(时间戳),如果值为空,我希望它在服务器上执行 getDate()

我知道我可以只执行 new Date() 但这实际上行不通,因为由于遗留报告,它需要与自动插入值的另一列完全匹配。

假设我无法更改架构并向列添加默认值。

有什么方法可以将公式设置为 PreparedStatement 中的参数?

编辑添加:这基本上是目前的情况:

PreparedStatement statement = connection.prepareStatement("insert into row (name, starttime) values (?, ?)")
statement.setString(1, name);
statement.setDate(2, date);

我想要的是:

PreparedStatement statement = connection.prepareStatement("insert into row (name, starttime) values (?, ?)")
statement.setString(1, name);
if(date != null)
statement.setDate(2, date);
else
statement.setFormula(2, "getdate()");

我的理解是:

if(date == null)
date = new Date();

本质上是同一件事,但在我们的例子中,它真的不是。

最佳答案

简单地准备一个表格的声明是否有效

insert into row(name, starttime)
values(?, coalesce(?, getdate())

?然后设置一个空的第二个参数应该会导致 getdate() 调用?

关于java - 如何在 JDBC PreparedStatement 中设置公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6494458/

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