Apache DBUtils-为什么需要插入的结果集处理程序



我使用Apache DBUtils运行了一个insert语句。然而,我不确定为什么我必须为这种情况包括ResultSetHandler:

String theQuery = QueryGenerator.insertintoStats();
        ResultSetHandler<Object> dummyHandler = new ResultSetHandler<Object>() {
            @Override
            public Object handle(ResultSet rs) throws SQLException
            {
                return null;
            }
        };
        try
        {
            queryRunner.insert(connection, theQuery, dummyHandler, Constants.UUIDSTR.toString(), name, prevbackupTime,
                    curbackupTime, updStartTime, delStartTime, bkupType.toString(), rowCount);
        }
        catch (SQLException e)
        {
            LOGGER.info(theQuery.toString());
            LOGGER.error("Caught exception!", e);
        }

insertbatch的情况类似,它确实使用ResultSetHandler。我已使用batch调用进行批处理查询。有人能解释一下为什么我们需要insert的结果集处理程序吗?

来自文档https://commons.apache.org/proper/commons-dbutils/apidocs/:

public <T> T insert(String sql,
           ResultSetHandler<T> rsh,
           Object... params)
         throws SQLException

rsh-用于从ResultSet创建结果对象的处理程序的自动生成密钥。

如果在插入时生成id的表中插入值,则可以将其检索回来,例如,请参阅以下答案:如何手动执行此操作:https://stackoverflow.com/a/1915197/947111

您需要ResultSetHandler<T> rshResultSet进行迭代,后者返回已创建的id

相关内容

  • 没有找到相关文章

最新更新