我必须使用包含所有行的数据文件中的值更新表。现在我正在使用 JDBC 批处理。数据文件包含数百列和数百万行。

例如数据文件包含 3 列两行以使其简单

1,ABC,DEF
2.GHI,JKL

PreparedStatement pstmt = connection.prepareStatement(insert);
                //how to find type
                pstmt.setInt(1, 2);
                pstmt.setString(2, "GHI");
                pstmt.setString(3, "JKL");
                pstmt.addBatch();
                pstmt.executeBatch();

现在我的问题是在运行时基于来自数据文件的数据我如何发现我需要调用 setIntsetString ,更重要的是我需要为该 setXXX 调用 addBatch() 多少次。这似乎对于每个表我都需要有专用的 PreparedStatements。更重要的是,我需要根据数据文件中的列数确定在运行时应该调用 setObject 多少次?无论如何我可以使这个通用吗?

我是JDBC的新手,请指导。提前致谢。

最佳答案

您可以使用 setObject(int index, Object obj)。 JDBC 然后确定正确的类型。

关于java - 如何根据列值的类型使 PreparedStatement.setXXX() 动态化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17484673/

10-13 00:07