我有下面的代码,我在其中将记录插入到表中。当我尝试获取结果集时,它返回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 }
当使用一个SQL语句,例如INSERT,UPDATE或DELETE用PreparedStatement,您必须使用executeUpdate,这将返回affeted的行数。在这种情况下ResultSet,sql操作不会产生任何结果,因此调用executeQuery将抛出SQLException。
INSERT
UPDATE
DELETE
PreparedStatement
executeUpdate
ResultSet
SQLException
如果您确实需要a ResultSet ,则必须使用SELECTSQL操作进行另一条语句。
SELECT