java - 将数据插入多个表

标签 java jdbc prepared-statement

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/

相关文章:

java - Android - 写入文件时出错

java.lang.ClassNotFoundException : com. mysql.jdbc.Driver(jar 文件已链接并放置在 WEB-INF/lib 中)

php - mysql 中的 store_result() 和 get_result() 返回 false

mysql - 使用 sql 转义的动态 mysql 查询是否与准备好的语句一样安全?

mysql_stmt_fetch() 返回 100?

java - 仅在模拟器上 fragment 的 onCreateView 中出现 NullPointerException

java - 如何验证命令行参数中的用户输入以获得更高的安全性?

java - Android XML 设计(布局)使我的应用程序如此缓慢

Java - 如何获取结果集上的列名

java - 将结果数组从类返回到其他类 java