获取preparedStatement-JavaDB2的可能数据类型

获取preparedStatement-JavaDB2的可能数据类型,java,sql,db2,prepared-statement,Java,Sql,Db2,Prepared Statement,在插入值之前,是否有方法获取PreparedStatement接受的数据类型 这个场景是我获取Excel(或OpenOffice)文档,我解析这些文档以将数据导入数据库。有时,如果表示数字0,Excel中的单元格将保留为空。 有没有一种方法可以从准备好的insert语句中获取列类型,以确保必须解析哪个数据类型的值 我认为这应该是非常有可能的,事先在表上运行select语句,然后只查看ResultSet元数据。但如果可能的话,我想绕开这个话题 PreparedStatement不支持它。它允许您设

在插入值之前,是否有方法获取
PreparedStatement
接受的数据类型

这个场景是我获取Excel(或OpenOffice)文档,我解析这些文档以将数据导入数据库。有时,如果表示数字0,Excel中的单元格将保留为空。 有没有一种方法可以从准备好的insert语句中获取列类型,以确保必须解析哪个数据类型的值


我认为这应该是非常有可能的,事先在表上运行select语句,然后只查看ResultSet元数据。但如果可能的话,我想绕开这个话题

PreparedStatement
不支持它。它允许您设置任何数据类型,但当您执行查询时,即对于数据类型不匹配,您将得到
SQLException


您最好使用系统目录视图来标识列数据类型,并相应地设置/派生值

DB2有此视图
SYSCAT.COLUMNS
来获取所需内容。

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

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

Java文档

这就是我在问题中提到的内容,我想试着绕开它。@guitarjunk噢,您需要的是参数元数据,而不是列。我的错。我更新我的答案