将 java.sql.Timestamp 类型存储到 HSQL 数据库中
Posted
技术标签:
【中文标题】将 java.sql.Timestamp 类型存储到 HSQL 数据库中【英文标题】:Storing java.sql.Timestamp type into HSQL database 【发布时间】:2015-10-15 08:31:50 【问题描述】:我们的应用程序确实有多个数据库。
java.sql.Timestamp 类型的日期存储在 SQL SERVER 的 DATETIME 数据类型中。
但是
为了在 HSQL DB 中存储相同的类型,我使用的是 TIMESTAMP,它无法转换它。
我将无法更改 java 代码,因为它在 SQL Server 和 Oracle 中都可以使用,但我只需要在 hsql 查询中进行转换。
当前使用带有日期时间字段的 SQL Server 的工作查询是:
insert into SYSTEM_DOCUMENTS values(?)
Java 代码:
timeStamp=new java.sql.Timestamp(new java.util.Date().getTime());
String q="insert into SYSTEM_DOCUMENTS values(?)";
pstm = con.prepareStatement(q);
pstm.setTimestamp(1, timeStamp);
pstm.executeQuery();
【问题讨论】:
向我们展示您的 Java 代码 @a_horse_with_no_name 添加了我的 java 代码。 executeQuery() 应该不用于 DML 语句。请改用executeUpdate()
(JavaDocs 中有明确记录)
【参考方案1】:
如果您使用的是Hibernate
,添加@Temporal
注释可以很简单
@Temporal(TemporalType.DATE)
private Date date;
Temporal
有 TIMESTAMP
、DATE
、TIME
枚举
【讨论】:
不使用hibernate..而且我不想更改java代码,而是想在HSQLDB查询中实现它。以上是关于将 java.sql.Timestamp 类型存储到 HSQL 数据库中的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.Timestamp 和 timedelta 中不支持的操作数类型“+”的 NIFI Executescript UTC 错误
java.sql.date , java.sql.timestamp 谓词 -> Oracle 分区数据类型
flink JDBC 类型转换 java.time.LocalDateTime cannot be cast to java.sql.Timestamp
sqlserver数据库中为datetime类型,通过myeclipse逆向工程生成实体类中属性为啥是java.sql.Timestamp