PreparedStatement用于插入未知类型的未知数量的值

时间:2012-02-02 16:31:05

标签: java sql postgresql

我有一个方法insert(),它将值列表插入到用户选择的表中。

问题在于,由于用户可以选择表,因此该方法不知道要插入多少个值以及它们是哪种类型。我用一个循环来解决可变数量的值,该循环使用字符串构建器将正确数量的“?” - 字符插入查询的值部分。

我还有一个循环将接收到的值拆分为String数组,但是我遇到了像字符串一样处理整数的问题。我可以使用sql-syntax的一些技巧解决这个问题,还是需要获取有关每个值的数据类型的信息?

如果我必须获取有关数据类型的信息,我该怎么做? (最好是一个只返回类型的sql查询,因为我想直接在我的java代码中使用结果)。

1 个答案:

答案 0 :(得分:2)

首先,我怀疑你做的事情是错误的,或者肯定是次优的。

假设您坚持这是您想要的方式,您需要从表中检索一行,然后在ResultSet上调用getMetadata()。

你最终会得到类似的东西:

rs.getMetaData()。getColumnTypeName(int column)

了解列类型后,您可以相应地解析/清理用户输入的数据。

相关问题