小编典典

从插入语句获取结果集

sql

我有下面的代码,我在其中将记录插入到表中。当我尝试获取结果集时,它返回null。如何将最新添加的行放入结果集中?

String sql1 = "INSERT INTO [xxxx].[dbo].[xxxxxx](WORKFLOW_SEQ_NBR," +
                      " WORKFLOW_LOG_TYPE_CODE, WORKFLOW_STATUS_CODE, DISP_CODE, DISP_USER, DISP_COMMENT, DISP_TITLE, DISP_TS)" +
                      "VALUES(?,?,?,?,?,?,?,?)";
        PreparedStatement pst = connect.prepareStatement(sql1);
        pst.setString(1, ...);
        pst.setString(2, ...);
        ...
        ...
        ...
        pst.executeUpdate();

        ResultSet rstest = pst.executeQuery();
//          ResultSet rstest = pst.getResultSet();

编辑:已解决

添加了以下方法以转到最后添加的行

st.execute("Select * from [xxxx].[dbo].[xxxxxxxxx]");
        ResultSet rstest = st.getResultSet();
        rstest.afterLast();
        GETLASTINSERTED:
        while(rstest.previous()){
            System.out.println(rstest.getObject(1));
            break GETLASTINSERTED;//to read only the last row
        }

阅读 247

收藏
2021-04-07

共1个答案

小编典典

当使用一个SQL语句,例如INSERTUPDATEDELETEPreparedStatement,您必须使用executeUpdate,这将返回affeted的行数。在这种情况下ResultSet,sql操作不会产生任何结果,因此调用executeQuery将抛出SQLException

如果您确实需要a ResultSet ,则必须使用SELECTSQL操作进行另一条语句。

2021-04-07