gpt4 book ai didi

java - 如何一次性将数据插入到 2 个表中

转载 作者:行者123 更新时间:2023-11-29 11:08:24 24 4
gpt4 key购买 nike

pstmt = conn.prepareStatement(queryBuilder.toString());
pstmt.setString(count++, commonDTO.getGroupName());
pstmt.setString(count++, commonDTO.getSubGrpNameHindi());
pstmt.setString(count++, commonDTO.getGroupCode());
pstmt.setInt(count++, commonDTO.getIsActive());
pstmt.executeUpdate();

StringBuilder queryBuilder = new StringBuilder();
queryBuilder = queryBuilder.append(SLCMQueryConstant.Get_SubGrp_Id);
pstmt.setString (1, commonDTO.getGroupName());
rs = pstmt.executeQuery();
int x = 0;
while(rs.next())
{
x= rs.getInt("subject_Group_ID");
}

queryBuilder= queryBuilder.append(SLCMQueryConstant.MapSubject_to_SubGrp);
pstmt.setInt(count++, x);
pstmt.setInt(count++, commonDTO.getSubGrpID());
pstmt.setInt(count++, commonDTO.getSubjectMaxMark());
pstmt.setInt(count++, commonDTO.getSubjectMinMark());
pstmt.executeUpdate();
conn.commit();

我正在尝试将新行插入第一个表中。然后我想要新添加的 id行并插入到第二个表中,但有一个异常(exception)。

最佳答案

错误消息准确地告诉您出了什么问题 -executeQuery 用于执行 SELECT 查询,而不是 INSERTS/UPDATES。使用 executeUpdate 代替,例如描述here .

看到您已在上面添加了查询 - 要执行多个查询,请运行多个executeQuery/executeUpdate 语句。只要您没有设置自动提交并提交第三个查询,所有三个查询都将作为单个提交执行(即不能被中断)。

不可能使用单个executeQuery/executeUpdate运行多个查询,并用分号分隔。这种语法只是许多客户端用来分隔文本查询的语法,但客户端也会通过多个请求单独发送这些查询。

我猜想在一个事务中运行三个单独的查询正是您所需要的。但是,如果由于某种原因您绝对想通过一次执行来完成此操作,则可以使用 stored procedure ,您提前准备好。

关于java - 如何一次性将数据插入到 2 个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41015557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com