From 1f3ddaeec6d749938005a298e7cf2a640787dbfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=84=A0=EC=9A=B0?= Date: Sun, 9 Feb 2025 17:24:35 +0900 Subject: [PATCH] Implement prepareStatement --- .../tursodatabase/jdbc4/JDBC4Connection.java | 56 +++++++++---------- 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Connection.java b/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Connection.java index 34287f0f9..598404b06 100644 --- a/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Connection.java +++ b/bindings/java/src/main/java/org/github/tursodatabase/jdbc4/JDBC4Connection.java @@ -41,11 +41,6 @@ public class JDBC4Connection extends LimboConnection { return new JDBC4Statement(this); } - @Override - public PreparedStatement prepareStatement(String sql) throws SQLException { - return new JDBC4PreparedStatement(this, sql); - } - @Override public String nativeSQL(String sql) throws SQLException { return sql; @@ -131,14 +126,6 @@ public class JDBC4Connection extends LimboConnection { // TODO } - @Override - @SkipNullableCheck - public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) - throws SQLException { - // TODO - return null; - } - @Override public Map> getTypeMap() throws SQLException { return this.typeMap; @@ -189,15 +176,6 @@ public class JDBC4Connection extends LimboConnection { // TODO } - @Override - @SkipNullableCheck - public PreparedStatement prepareStatement( - String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) - throws SQLException { - // TODO - return null; - } - @Override public CallableStatement prepareCall(String sql) throws SQLException { return prepareCall( @@ -221,24 +199,40 @@ public class JDBC4Connection extends LimboConnection { } @Override - @SkipNullableCheck + public PreparedStatement prepareStatement(String sql) throws SQLException { + return prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); + } + + @Override + public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) + throws SQLException { + return prepareStatement(sql, resultSetType, resultSetConcurrency, ResultSet.CLOSE_CURSORS_AT_COMMIT); + } + + @Override + public PreparedStatement prepareStatement( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + checkOpen(); + checkCursor(resultSetType, resultSetConcurrency, resultSetHoldability); + return new JDBC4PreparedStatement(this, sql); + } + + @Override public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { - // TODO - return null; + return prepareStatement(sql); } @Override - @SkipNullableCheck public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { - // TODO - return null; + // TODO: maybe we can enhance this functionality by using columnIndexes + return prepareStatement(sql); } @Override - @SkipNullableCheck public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { - // TODO - return null; + // TODO: maybe we can enhance this functionality by using columnNames + return prepareStatement(sql); } @Override