获取 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()
有什么方法可以在插入值之前让 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()