我目前正在使用 HSQLDB 来保存 java 数据。在这些数据中,有一些 Double,其中一些可以是 NaN
的值(在 javadoc 中描述为 0.0/0.0
)。 HSQLDB 知道如何在 PreparedStatement
的 setDouble
和 setFloat
中处理这些值。问题是,我必须使用一个 Statement
对象,而不是一个预编译的存储过程,我就是找不到让它工作的方法。
如果您有最微小的提示,我们将不胜感激 :)
谢谢。
编辑:这是我正在使用的一堆代码:
stmt.executeUpdate("insert into Mesh(Id, name, dimension, meshtype, totalVolume, NumberOfCoarseCell) values (identity(), "
+ "'" + name_ + "',"
+ dimension_ + "," // this value can be NaN
+ "'" + type_.toString() + "',"
+ totalVolume_ + "," // this value can be NaN
+ numberOfCoarseCells_ + ")");
最佳答案
您的意思是您需要一种在 SQL 语句中写入 NaN 的方法?以下作品适用于 H2 database :
select sqrt(-1) from dual
但是,它不适用于 Apache Derby 和 PostgreSQL(我没有测试其他数据库)。对于 HSQLDB,它不再适用于 2.1 版和更新版本,除非您设置 SET DATABASE SQL DOUBLE NAN FALSE
。
关于java - HSQLDB 语句和 Java NaN double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5140371/