事务 JDBC Java 插入不会在表中插入/更新条目

问题描述 投票:0回答:1

对于我的工作,我需要创建几个插入到我的表中的PrepareStatements。通常我对此没有问题,但这个问题对我来说没有任何意义。

我在给定的环境中工作,该环境已经与数据库建立了连接。 通常,在这方面创建我的陈述很简单。但在这种情况下,更新或插入不会进行。

经过一些失败后,我为测试用例做了一个单独的方法,没有任何东西会干扰连接,但即使这样也不起作用。

public void pleasedotheWorkTes() {

    Connection conn = Transaction.getCurrentConnection;
    PreparedStatement pepaw = null;

    try {
        conn.setAutoCommit(false);

        String sqlSelect = " Select ID FROM Table1 WHERE  ort = 'B' ";
        pepaw = conn.prepareStatement(sqlSelect);
        Boolean checkSelect = pepaw.execute();

        String sqlInsert = " Update Table1 Set ort = 'C' WHERE  ID = '10' ";
        pepaw = conn.prepareStatement(sqlSelect);
        Integer checkInsert = pepaw.executeUpdate();

        conn.commit();
        pepaw.close();
        conn.close();
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
}

当 Select 语句正在运行且工作正常时。 (布尔值=真) 插入语句不会抛出错误,但只会抛出一个整数错误,并且不会更新表中的任何内容。该语句在我的数据库可视化工具中有效。

据我所知,AutoCommit 中的 Connection 需要为“False”才能更好地控制语句。最后的提交确保更改已传输,但什么也没有发生。

我有点不知道我做错了什么。我担心后台的连接会把它弄乱,但我创建了一个额外的对象并关闭了连接。

java jdbc prepared-statement spring-transactions
1个回答
0
投票

您已经使用了 sqlselect 两次——给出了正确的代码。 检查这是否有效 String sqlInsert = " 更新 Table1 Set ort = 'C' WHERE ID = '10' "; pepaw = conn.prepareStatement(sqlInsert);

© www.soinside.com 2019 - 2024. All rights reserved.