Rev*_*nzo 4 java sql jdbc prepared-statement
我有一个 PreparedStatement,用于插入一堆包含大量列数据的行。但是,对于其中一列(时间戳),如果值为空,我希望它getDate()在服务器上执行。
我知道我可以这样做,new Date()但这不会真正起作用,因为由于旧报告,它需要与自动插入值的另一列完全匹配。
假设我无法更改架构并向列添加默认值。
有什么方法可以将公式设置为 PreparedStatement 中的参数?
编辑添加:这基本上是目前的情况:
PreparedStatement statement = connection.prepareStatement("insert into row (name, starttime) values (?, ?)")
statement.setString(1, name);
statement.setDate(2, date);
Run Code Online (Sandbox Code Playgroud)
我想要的是,类似于:
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()");
Run Code Online (Sandbox Code Playgroud)
我明白那个:
if(date == null)
date = new Date();
Run Code Online (Sandbox Code Playgroud)
本质上是一样的,但在我们的例子中,它真的不是。
简单地准备一份表格声明是否有效
insert into row(name, starttime)
values(?, coalesce(?, getdate())
Run Code Online (Sandbox Code Playgroud)
? 然后设置一个空的第二个参数应该导致一个 getdate() 调用?
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |