From c49763fd6f6d0245521418cc8c8d191a655f0368 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 1 May 2013 17:04:04 +0200 Subject: [PATCH] [#2236] Add DSLContext.batch(String...) and batch(String, Object[]...) to easily create batch statements from SQL strings --- jOOQ/src/main/java/org/jooq/DSLContext.java | 39 +++++++++++++++++++ .../java/org/jooq/impl/DSLContextImpl.java | 24 ++++++++++++ 2 files changed, 63 insertions(+) diff --git a/jOOQ/src/main/java/org/jooq/DSLContext.java b/jOOQ/src/main/java/org/jooq/DSLContext.java index 0db34c42b2..71574c561c 100644 --- a/jOOQ/src/main/java/org/jooq/DSLContext.java +++ b/jOOQ/src/main/java/org/jooq/DSLContext.java @@ -4019,6 +4019,19 @@ public interface DSLContext { @Support Batch batch(Query... queries); + /** + * Execute a set of queries in batch mode (without bind values). + *

+ * This is a convenience method for calling + *

batch(query(queries[0]), query(queries[1]), ...)
. + * + * @see #query(String) + * @see #batch(Query...) + * @see Statement#executeBatch() + */ + @Support + Batch batch(String... queries); + /** * Execute a set of queries in batch mode (without bind values). *

@@ -4070,6 +4083,19 @@ public interface DSLContext { @Support BatchBindStep batch(Query query); + /** + * Execute a set of queries in batch mode (with bind values). + *

+ * This is a convenience method for calling + *

batch(query(sql))
. + * + * @see #query(String) + * @see #batch(Query) + * @see Statement#executeBatch() + */ + @Support + BatchBindStep batch(String sql); + /** * Execute a set of queries in batch mode (with bind values). *

@@ -4086,6 +4112,19 @@ public interface DSLContext { @Support Batch batch(Query query, Object[]... bindings); + /** + * Execute a set of queries in batch mode (with bind values). + *

+ * This is a convenience method for calling + *

batch(query(sql), bindings)
. + * + * @see #query(String) + * @see #batch(Query, Object[][]) + * @see Statement#executeBatch() + */ + @Support + Batch batch(String sql, Object[]... bindings); + /** * Execute a set of INSERT and UPDATE queries in * batch mode (with bind values). diff --git a/jOOQ/src/main/java/org/jooq/impl/DSLContextImpl.java b/jOOQ/src/main/java/org/jooq/impl/DSLContextImpl.java index f48ab9ed3a..569a14e3ea 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSLContextImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSLContextImpl.java @@ -1362,6 +1362,18 @@ class DSLContextImpl implements DSLContext, Serializable { return new BatchMultiple(configuration, queries); } + @Override + @Support + public final Batch batch(String... queries) { + Query[] result = new Query[queries.length]; + + for (int i = 0; i < queries.length; i++) { + result[i] = query(queries[i]); + } + + return batch(result); + } + @Override @Support public final Batch batch(Collection queries) { @@ -1374,12 +1386,24 @@ class DSLContextImpl implements DSLContext, Serializable { return new BatchSingle(configuration, query); } + @Override + @Support + public final BatchBindStep batch(String sql) { + return batch(query(sql)); + } + @Override @Support public final Batch batch(Query query, Object[]... bindings) { return batch(query).bind(bindings); } + @Override + @Support + public final Batch batch(String sql, Object[]... bindings) { + return batch(query(sql), bindings); + } + @Override @Support public final Batch batchStore(UpdatableRecord... records) {