在Java JDBC中将数据插入到很多列中

时间:2011-11-06 19:04:26

标签: java jdbc insert hashmap

我有一个包含50列的表格,我希望将HashMap变量中的所有项目插入其中(HashMap键和表列名称相同)。
如果不编写50行代码,我怎么能这样做呢?

3 个答案:

答案 0 :(得分:3)

获取HashMap的密钥集。迭代该键集以构建包含insert语句的String。使用生成的String创建PreparedStatement。然后再次迭代该键集,使用从HashMap检索的对象按名称设置参数。

如果您的任何值属于JDBC驱动程序不确定如何映射的类,则可能必须编写一些额外的特殊情况代码行。

答案 1 :(得分:1)

我建议你咬一口,然后简单地编写一个方法,为你做一些包含50行参数设置代码的脏工作。这不是那么糟糕,你只需要写一次。我希望你不是那么懒;-)

顺便说一下,表中的50列不是很多吗?也许标准化过程可以帮助降低数据库的复杂性和操作它的代码。

另一种方法是使用像Hibernate这样的ORM,或像Spring JDBC template这样更轻量级的方法。

答案 2 :(得分:1)

  1. 致电map.keySet()以获取所有列的名称。
  2. 通过迭代密钥集来创建INSERT语句。
    • 该列来自密钥集中的项目(密钥)。
    • 数据来自map.get(key)