Author: bayard
Date: Tue Aug 16 05:45:49 2011
New Revision: 1158107

URL: http://svn.apache.org/viewvc?rev=1158107&view=rev
Log:
Adding example explaining how to use AsyncQueryRunner (DBUTILS-78)

Modified:
    commons/proper/dbutils/trunk/src/site/xdoc/examples.xml

Modified: commons/proper/dbutils/trunk/src/site/xdoc/examples.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/site/xdoc/examples.xml?rev=1158107&r1=1158106&r2=1158107&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/site/xdoc/examples.xml (original)
+++ commons/proper/dbutils/trunk/src/site/xdoc/examples.xml Tue Aug 16 05:45:49 
2011
@@ -128,6 +128,38 @@ catch(SQLException sqle) {
 ]]>
 </source>
 
+<p>
+  For long running calls you can use the <code>AsyncQueryRunner</code> to 
execute
+  the calls asynchronously. The <code>AsyncQueryRunner</code> class has the 
same
+  methods as the <code>QueryRunner</code> calls; however, the methods return a
+  <code>Callable</code>. 
+</p>
+
+<source>
+<![CDATA[
+ExecutorCompletionService<Integer> executor =
+    new ExecutorCompletionService<Integer>( Executors.newCachedThreadPool() );
+AsyncQueryRunner asyncRun = new AsyncQueryRunner( dataSource );
+
+try
+{
+    // Create a Callable for the update call
+    Callable<Integer> callable = asyncRun.update( "UPDATE Person SET height=? 
WHERE name=?",
+                                                  2.05, "John Doe" );
+
+    // Submit the Callable to the executor
+    executor.submit( callable );
+
+   // Later (or in another thread) get the result
+   Integer updates = executor.take().get();
+}
+catch(SQLException sqle) {
+    // Handle it
+}
+]]>
+</source>
+
+
 </section>
 
 


Reply via email to