当前位置: 首页 > 面试题库 >

从插入语句获取结果集

万俟丁雷
2023-03-14
问题内容

我有下面的代码,我在其中将记录插入到表中。当我尝试获取结果集时,它返回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语句,例如INSERTUPDATEDELETEPreparedStatement,您必须使用executeUpdate,这将返回affeted的行数。在这种情况下ResultSet,sql操作不会产生任何结果,因此调用executeQuery将抛出SQLException

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

有关PreparedStatement#executeQuery和PreparedStatement#executeUpdate的信息,请参阅Javadoc。



 类似资料:
  • 问题内容: 我如何得到一个数组的结果? 我有一个像这样的数组: 并将其保存在数据库中,例如JSON编码: 现在我想再次从数据库中获取数组。但是当我使用时: 我得到: 而不是数组。如何获取数组而不是对象? 问题答案: 将第二个参数设置为true以强制关联数组:

  • 问题内容: 当我在BigQuery Web UI中运行查询时,结果显示在一个表中,在该表中,每个字段的名称和类型均已知(即使字段是COUNT(),AVG(),…操作,类型领域当然是已知的)。然后可以将结果直接导出为table / json / csv。 我的问题是,当我在Java项目中检索查询结果时,例如使用查询: …可以在不显式定义的情况下在PCollection中获取TableRow的架构吗?

  • 问题内容: 我正在尝试像这样从C#向我的数据库中插入一个空值: DBNull.Value是日期可以在的地方,但我希望它等于null,但它似乎将默认日期设置为1900 … 问题答案: 改成: 返回空字符串,但您希望改为null。 但是,这种构建查询的方式可能会导致问题。例如,如果您的字符串之一包含引号’,则结果查询将引发错误。更好的方法是使用参数并在SqlCommand对象上进行设置:

  • 我有一个SQLite数据库。我试图在表

  • 问题内容: 我有一个函数,该函数接受在whe​​re子句中使用的参数 函数(字符串x)->现在这将创建一个sql查询,该查询将 现在,我希望此函数提供所有行,即等于 当我通过x =“ All”时。 我想创建一个通用查询,当我传递“全部”时,它将返回所有行,否则将过滤我的结果。 问题答案: 只需将where条件排除在外即可。 如果您真的想要它那么复杂的用途 仅过滤空值。

  • 问题内容: 我想每次插入带有日期+ 1的行。这是一个简单的SQL循环。我正在使用SSIS,因此StartDate和Enddate是变量。 这是我的代码: 错误信息: 消息156,级别15,状态1,行11关键字’select’附近的语法错误。 问题答案: 无需在声明。 代替 和