Uploaded image for project: 'Commons DbUtils'
  1. Commons DbUtils
  2. DBUTILS-13

[dbutils] Add QueryRunner.batch()

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.0
    • 1.1
    • None
    • Operating System: other
      Platform: Other

    • 27530

    Description

      From commons-dev:

      Adkins Kendall wrote:
      Has any consideration been given to adding batch update capability?
      For
      instance, the following method could be added to the QueryRunner class:

      /**

      • Execute a batch of SQL INSERT, UPDATE, or DELETE queries.
      • @param conn The connection to use to run the query.
      • @param sql The SQL to execute.
      • @param params An array of query replacement parameters.
      • @return The number of rows updated per statement.
      • @throws SQLException
        */
        public int[] batchUpdate(Connection conn, String sql, Object[][]
        params)
        throws SQLException {
        PreparedStatement stmt = null;
        int[] rows = null;
        try {
        stmt = this.prepareStatement(conn, sql);

      for(int i = 0; i < params.length; i++)

      { this.fillStatement(stmt, params[i]); stmt.addBatch(); }

      rows = stmt.executeBatch();
      } catch (SQLException e)

      { this.rethrow(e, sql, params); }

      finally

      { DbUtils.close(stmt); }

      return rows;
      }

      David Graham wrote:
      I'm fine with adding this to query runner but executeBatch() is marked
      as
      @since 1.3 so we would need to bump DbUtils' minimum Java level. I
      would
      shorten the method name to batch() so we would have query(), update()
      and
      batch() and of course some test cases are needed.

      Attachments

        Activity

          People

            Unassigned Unassigned
            dgraham@apache.org David Graham
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: