获取 preparedStatement 可能的数据类型 - Java DB2

Get possible datatypes for preparedStatement - Java DB2

有什么方法可以在插入值之前让 PreparedStatement 接受数据类型?

场景是我正在获取 Excel(或 OpenOffice)文档,我对其进行解析以将数据导入数据库。有时,如果表示数字 0,则 Excel 中的单元格留空。 有没有办法从准备好的插入语句中获取列类型,以确保我必须将值解析为哪种数据类型?

我认为这很可能通过事先在表上运行 select 语句并查看 ResultSet 元数据来实现。但如果可能的话,我想解决这个问题。

PreparedStatement 不支持。它会让你设置任何数据类型,但是当你执行查询时,当数据类型不匹配时你会得到 SQLException.

你最好的选择是使用 SYSTEM CATALOG 视图来识别列数据类型,并相应地 set/derive 值。

DB2 具有此视图SYSCAT.COLUMNS 来满足您的需求。

您可以从准备好的语句中获取参数元数据,其中包含参数数据类型。

ParameterMetaData metadata = preparedStatement.getParameterMetaData();
int type = metadata.getParameterType(col);

Java 文档 getParameterMetaData()