This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-csv.git


The following commit(s) were added to refs/heads/master by this push:
     new 4df73267 Add documentation to limit rows from JDBC ResultSets
4df73267 is described below

commit 4df73267ce7680d829ad3edffadcfbbf94c25e43
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Thu Mar 13 01:59:24 2025 -0400

    Add documentation to limit rows from JDBC ResultSets
---
 src/main/javadoc/overview.html | 51 ++++++++++++++++++++++++++++++++++--------
 1 file changed, 42 insertions(+), 9 deletions(-)

diff --git a/src/main/javadoc/overview.html b/src/main/javadoc/overview.html
index 59155833..0598cf19 100644
--- a/src/main/javadoc/overview.html
+++ b/src/main/javadoc/overview.html
@@ -314,15 +314,15 @@ try (ResultSet resultSet = ...) {
       </pre>
   </section>
   <section>
-    <h1>Exporting JDBC Result Sets</h1>
-    <p>
-      To export row data from a JDBC
-      <code>ResultSet</code>
-      , use
-      <code>CSVPrinter.printRecords(ResultSet)</code>
-      :
-    </p>
-    <pre>
+    <h1>Working with JDBC</h1>
+    <section>
+      <h2>Exporting JDBC Result Sets</h2>
+      <p>
+        To export row data from a JDBC
+        <code>ResultSet</code>
+        , use <a 
href="org/apache/commons/csv/CSVPrinter.html#printRecords(java.sql.ResultSet)">CSVPrinter.printRecords(ResultSet)</a>
 :
+      </p>
+      <pre>
         <code>
         final StringWriter sw = new StringWriter();
         final CSVFormat csvFormat = CSVFormat.DEFAULT;
@@ -337,6 +337,39 @@ try (ResultSet resultSet = ...) {
         System.out.println(csv);
         </code>
         </pre>
+    </section>
+    <section>
+      <h2>Limiting rows from JDBC Result Sets</h2>
+      <p>SQL lets you limit how many rows a SELECT statement returns with the 
LIMIT clause.</p>
+      <p>
+        When you can't or don't want to change the SQL used to generate rows, 
JDBC lets you limit how many rows a JDBC Statement returns with the <a
+          
href="https://docs.oracle.com/en/java/javase/21/docs/api/java.sql/java/sql/Statement.html#setMaxRows(int)">Statement.setMaxRows(int)</a>
 method.
+      </p>
+      <p>
+        When you get a JDBC ResultSet from an API like <a
+          
href="https://docs.oracle.com/en/java/javase/21/docs/api/java.sql/java/sql/DatabaseMetaData.html#getProcedures(java.lang.String,java.lang.String,java.lang.String)">
+          DatabaseMetaData.getProcedures(...)</a>, there is no SQL or JDBC 
Statement to use to set a limit, the ResultSet class does not have an API to 
limit rows.
+      </p>
+      <p>
+        To simplify limiting ResultSet rows, Commons CVS offers the <a 
href="org/apache/commons/csv/CSVFormat.Builder.html#setMaxRows(long)">CSVFormat.Builder.setMaxRows(long)</a>
+        method. For example:
+      </p>
+      <pre>
+        <code>
+        CSVFormat csvFormat = CSVFormat.DEFAULT
+            .setMaxRows(5_000)
+            .get();
+        try (ResultSet resultSet = ...) {
+            csvFormat.printer().printRecords(resultSet);
+        }
+        </code>
+      </pre>
+      <p>
+        Using the above, calling <a 
href="org/apache/commons/csv/CSVPrinter.html#printRecords(java.sql.ResultSet)">CSVPrinter.printRecords(ResultSet)</a>
 will
+        limit the row count to the maximum number of rows specified in 
setMaxRows().
+      </p>
+      <p>Note that setMaxRows() works with the other methods that print a 
sequence of records.</p>
+    </section>
   </section>
 </body>
 </html>

Reply via email to