From 8f9e70417d3838d5f0331b14070d0227ec0e31cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=84=A0=EC=9A=B0?= Date: Sun, 19 Jan 2025 21:50:43 +0900 Subject: [PATCH] Implement executeQuery and executeUpdate --- .../tursodatabase/jdbc4/JDBC4Statement.java | 18 ++++++++++++++---- .../jdbc4/JDBC4ResultSetTest.java | 18 ++++++++---------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Statement.java b/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Statement.java index 2f7f2c0d6..24a751857 100644 --- a/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Statement.java +++ b/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Statement.java @@ -12,6 +12,7 @@ import java.util.concurrent.locks.ReentrantLock; import org.github.tursodatabase.annotations.Nullable; import org.github.tursodatabase.annotations.SkipNullableCheck; import org.github.tursodatabase.core.LimboConnection; +import org.github.tursodatabase.core.LimboResultSet; import org.github.tursodatabase.core.LimboStatement; public class JDBC4Statement implements Statement { @@ -47,15 +48,24 @@ public class JDBC4Statement implements Statement { } @Override - @SkipNullableCheck public ResultSet executeQuery(String sql) throws SQLException { - // TODO - return null; + execute(sql); + + requireNonNull(statement, "statement should not be null after running execute method"); + return new JDBC4ResultSet(statement.getResultSet()); } @Override public int executeUpdate(String sql) throws SQLException { - // TODO + execute(sql); + + requireNonNull(statement, "statement should not be null after running execute method"); + final LimboResultSet resultSet = statement.getResultSet(); + while (resultSet.isOpen()) { + resultSet.next(); + } + + // TODO: return update count; return 0; } diff --git a/bindings/java/src/test/java/org/github/tursodatabase/jdbc4/JDBC4ResultSetTest.java b/bindings/java/src/test/java/org/github/tursodatabase/jdbc4/JDBC4ResultSetTest.java index 46cf7e216..88a499b9d 100644 --- a/bindings/java/src/test/java/org/github/tursodatabase/jdbc4/JDBC4ResultSetTest.java +++ b/bindings/java/src/test/java/org/github/tursodatabase/jdbc4/JDBC4ResultSetTest.java @@ -9,7 +9,6 @@ import java.util.Properties; import org.github.tursodatabase.TestUtils; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; class JDBC4ResultSetTest { @@ -28,26 +27,25 @@ class JDBC4ResultSetTest { @Test void invoking_next_before_the_last_row_should_return_true() throws Exception { - stmt.execute("CREATE TABLE users (id INT PRIMARY KEY, username TEXT);"); - stmt.execute("INSERT INTO users VALUES (1, 'sinwoo');"); - stmt.execute("INSERT INTO users VALUES (2, 'seonwoo');"); + stmt.executeUpdate("CREATE TABLE users (id INT PRIMARY KEY, username TEXT);"); + stmt.executeUpdate("INSERT INTO users VALUES (1, 'sinwoo');"); + stmt.executeUpdate("INSERT INTO users VALUES (2, 'seonwoo');"); // first call to next occur internally - stmt.execute("SELECT * FROM users"); + stmt.executeQuery("SELECT * FROM users"); ResultSet resultSet = stmt.getResultSet(); assertTrue(resultSet.next()); } @Test - // @Disabled("https://github.com/tursodatabase/limbo/pull/743#issuecomment-2600746904") void invoking_next_after_the_last_row_should_return_false() throws Exception { - stmt.execute("CREATE TABLE users (id INT PRIMARY KEY, username TEXT);"); - stmt.execute("INSERT INTO users VALUES (1, 'sinwoo');"); - stmt.execute("INSERT INTO users VALUES (2, 'seonwoo');"); + stmt.executeUpdate("CREATE TABLE users (id INT PRIMARY KEY, username TEXT);"); + stmt.executeUpdate("INSERT INTO users VALUES (1, 'sinwoo');"); + stmt.executeUpdate("INSERT INTO users VALUES (2, 'seonwoo');"); // first call to next occur internally - stmt.execute("SELECT * FROM users"); + stmt.executeQuery("SELECT * FROM users"); ResultSet resultSet = stmt.getResultSet(); while (resultSet.next()) {