【问题标题】:Insert ArrayList into Oracle Table将 ArrayList 插入 Oracle 表
【发布时间】:2016-03-08 16:34:53
【问题描述】:

有没有一种方法,在 java 语言中,无需循环遍历 ArrayList 和编码就可以将 Arraylist 插入表中:

List<Object> lo = new ArrayList<Object>();
for (Object obj:lo)
{PreparedStatement ps = conn.prepareStatement("INSERT INTO TABLE VALUES (?, ?, ? )");
ps.setString(1,obj.field1); 
ps.setInt(2,obj.field2); } 

而只是:

   List<Object> lo = new ArrayList<Object>();
   PreparedStatement ps = conn.prepareStatement("INSERT INTO TABLE VALUES (?, ?, ? )");
    ps.insertArray(lo); 

【问题讨论】:

  • 我不是在寻找批处理解决方案,因为它只是将插入耦合到一个调用中(数据库仍然应该硬或软解析它们),而是一种通过一个命令/调用插入 ArrayList 或任何其他集合的方法高效。

标签: java arrays oracle insert


【解决方案1】:

没有。 JDBC 不知道每个插入参数应该使用什么值。您必须明确设置:

List<MyClass> objects = new ArrayList<MyClass>();

// ...

try (PreparedStatement stmt = conn.prepareStatement("INSERT INTO TABLE VALUES (?, ?, ? )")) {

    objects.stream().forEach(o -> { insert(o, stmt) });

}

private static void insert(MyClass, object, PreparedStatement stmt) {
    stmt.setInt(1, object.getId());
    stmt.setString(2, object.getName());
    ...
    stmt.executeUpdate();
}

考虑使用对象关系映射器来实现您想要的。

【讨论】:

    猜你喜欢
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多