获取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噢,您需要的是参数元数据,而不是列。我的错。我更新我的答案