From 792a0921eb43c28b6acc90069c4872ac89db6480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20Wilhelmst=C3=B6tter?= Date: Thu, 7 Aug 2025 20:31:18 +0200 Subject: [PATCH] #67: Mark 'ResultSetParser::csvLine' method as deprecated. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The method has been renamed to 'ResultSetParser::csv'. Signed-off-by: Franz Wilhelmstötter --- .../java/io/jenetics/facilejdbc/Param.java | 9 ++++++ .../jenetics/facilejdbc/ResultSetParser.java | 31 +++++++++++++++++-- .../io/jenetics/facilejdbc/RowParser.java | 2 +- .../io/jenetics/facilejdbc/ParamsTest.java | 4 ++- .../facilejdbc/testdb/TestDbTest.java | 2 +- 5 files changed, 43 insertions(+), 5 deletions(-) diff --git a/facilejdbc/src/main/java/io/jenetics/facilejdbc/Param.java b/facilejdbc/src/main/java/io/jenetics/facilejdbc/Param.java index eb52cfe8..b8aaadeb 100644 --- a/facilejdbc/src/main/java/io/jenetics/facilejdbc/Param.java +++ b/facilejdbc/src/main/java/io/jenetics/facilejdbc/Param.java @@ -42,6 +42,15 @@ * ); * } *

+ * Creating (lazy) single-valued parameters + * {@snippet lang="java": + * INSERT_QUERY.on( + * Param.lazyValue("inserted_at", Instant::now), + * Param.value("forename", "Werner"), + * Param.value("email", "some.email@gmail.com") + * ); + * } + *

* Creating multi-valued parameters * {@snippet lang="java": * var query = Query.of("SELECT * FROM table WHERE id = IN(:ids);") diff --git a/facilejdbc/src/main/java/io/jenetics/facilejdbc/ResultSetParser.java b/facilejdbc/src/main/java/io/jenetics/facilejdbc/ResultSetParser.java index 87a125c9..b3d83e45 100644 --- a/facilejdbc/src/main/java/io/jenetics/facilejdbc/ResultSetParser.java +++ b/facilejdbc/src/main/java/io/jenetics/facilejdbc/ResultSetParser.java @@ -68,11 +68,37 @@ T parse(final ResultSet rs, final Connection conn) /** * Return a {@link ResultSet} parser, which converts the query result to a * CSV line. - * {@snippet lang="java": + * {@snippet lang = "java": + * final var select = Query.of("SELECT * FROM book;"); + * final var csv = select.as(ResultSetParser.csv(), conn); + * System.out.println(csv); + *} + * The CSV output will look like this: + *

+	 * "ID","PUBLISHED_AT","TITLE","ISBN","PAGES"
+	 * "0","1987-02-04","Auf der Suche nach der verlorenen Zeit","978-3518061756","5100"
+	 * "1","1945-01-04","Database Design for Mere Mortals","978-0321884497","654"
+	 * "2","1887-02-04","Der alte Mann und das Meer","B00JM4RD2S","142"
+	 * 
+ * + * @since 3.0 + * + * @see RowParser#csvLine() + * + * @return a CSV {@link ResultSet} parser + */ + static ResultSetParser csv() { + return CSV::string; + } + + /** + * Return a {@link ResultSet} parser, which converts the query result to a + * CSV line. + * {@snippet lang = "java": * final var select = Query.of("SELECT * FROM book;"); * final var csv = select.as(ResultSetParser.csvLine(), conn); * System.out.println(csv); - * } + *} * The CSV output will look like this: *
 	 * "ID","PUBLISHED_AT","TITLE","ISBN","PAGES"
@@ -87,6 +113,7 @@ T parse(final ResultSet rs, final Connection conn)
 	 *
 	 * @return a CSV {@link ResultSet} parser
 	 */
+	@Deprecated(since = "3.0", forRemoval = true)
 	static ResultSetParser csvLine() {
 		return CSV::string;
 	}
diff --git a/facilejdbc/src/main/java/io/jenetics/facilejdbc/RowParser.java b/facilejdbc/src/main/java/io/jenetics/facilejdbc/RowParser.java
index c6eadf17..bec42436 100644
--- a/facilejdbc/src/main/java/io/jenetics/facilejdbc/RowParser.java
+++ b/facilejdbc/src/main/java/io/jenetics/facilejdbc/RowParser.java
@@ -841,7 +841,7 @@ static RowParser date(final int index) {
 	 *
 	 * @since 1.3
 	 *
-	 * @see ResultSetParser#csvLine()
+	 * @see ResultSetParser#csv()
 	 * @see #ofColumns(Function)
 	 *
 	 * @return a row parser which converts a DB row into a CSV row
diff --git a/facilejdbc/src/test/java/io/jenetics/facilejdbc/ParamsTest.java b/facilejdbc/src/test/java/io/jenetics/facilejdbc/ParamsTest.java
index 279d304e..a6ec7b7d 100644
--- a/facilejdbc/src/test/java/io/jenetics/facilejdbc/ParamsTest.java
+++ b/facilejdbc/src/test/java/io/jenetics/facilejdbc/ParamsTest.java
@@ -20,6 +20,7 @@
 package io.jenetics.facilejdbc;
 
 import java.sql.SQLException;
+import java.time.Instant;
 import java.util.List;
 
 import org.testng.Assert;
@@ -39,7 +40,8 @@ public void set() throws SQLException {
 			Param.value("name_2", "value_2"),
 			Param.value("name_3", "value_3"),
 			Param.value("name_4", "value_4"),
-			Param.value("name_5", "value_5")
+			Param.value("name_5", "value_5"),
+			Param.lazyValue("inserted_at", Instant::now)
 		));
 
 		params.set(List.of("name_2", "name_5", "name_1"), stmt);
diff --git a/facilejdbc/src/test/java/io/jenetics/facilejdbc/testdb/TestDbTest.java b/facilejdbc/src/test/java/io/jenetics/facilejdbc/testdb/TestDbTest.java
index fafb162a..3b2b8cce 100644
--- a/facilejdbc/src/test/java/io/jenetics/facilejdbc/testdb/TestDbTest.java
+++ b/facilejdbc/src/test/java/io/jenetics/facilejdbc/testdb/TestDbTest.java
@@ -221,7 +221,7 @@ public void selectEmptyStream() throws SQLException {
 	public void selectToCSV() throws SQLException {
 		db.transaction().accept(conn -> {
 			final var select = Query.of("SELECT * FROM book ORDER BY id;");
-			final var csv = select.as(ResultSetParser.csvLine(), conn);
+			final var csv = select.as(ResultSetParser.csv(), conn);
 
 			final var expected = """
 				"ID","PUBLISHED_AT","TITLE","LANGUAGE","ISBN","PAGES"