String insert1 = "INSERT INTO  Table1(Col1, col2, col3)"
    + "VALUES(?,?,?)";

String insert2 = "INSERT INTO  Table2(Colx, coly)"
    + "VALUES(?,?)";

Connection conn = aConn;
PreparedStatement ps = null;
try {
    ps = conn.prepareStatement(insert1);
 // ps.addBatch(insert2);


我正在尝试一次将数据插入到多个表中,并且似乎没有为PreparedStatement定义addBatch(String sql)
还有其他方法吗?

最佳答案

首先,PreparedStatement用于缓存单个SQL语句。这样做的好处是,驱动程序/数据库可以优化该语句,因为它期望许多语句,并且它是参数化的语句。如果要将它用于两个不同的SQL语句,则需要两个PreparedStatement

为了在语句中添加行,您需要使用set*(1,...)set*(2,...)set*(3,...)等设置参数,然后调用addBatch()(无参数!)。最后,您使用executeBatch()提交这批语句。

关于java - 将数据插入多个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23143199/

10-14 02:28