accept SQL commands returning more ResultSets v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun, 22 Dec 2013 23:55:07 +0100
branchv_0
changeset 35 b2ff3b2d58b2
parent 34 9335cf31c0f2
child 36 025fbe816bbf
accept SQL commands returning more ResultSets
java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java
java/sql-dk/src/info/globalcode/sql/dk/SQLCommand.java
java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNamed.java
java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNumbered.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Sun Dec 22 23:31:55 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Sun Dec 22 23:55:07 2013 +0100
@@ -76,8 +76,22 @@
 		formatter.writeParameters(sqlCommand.getParameters());
 		try (PreparedStatement ps = sqlCommand.prepareStatement(connection)) {
 			sqlCommand.parametrize(ps);
-			try (ResultSet rs = ps.executeQuery()) {
-				processResultSet(rs, formatter);
+
+			boolean isRS = ps.execute();
+			if (isRS) {
+				try (ResultSet rs = ps.getResultSet()) {
+					processResultSet(rs, formatter);
+				}
+			} else {
+				/**
+				 * TODO: process UPDATE command
+				 */
+			}
+
+			while (ps.getMoreResults() || ps.getUpdateCount() > -1) {
+				/**
+				 * TODO: process more RS or UPDATEs
+				 */
 			}
 		}
 
--- a/java/sql-dk/src/info/globalcode/sql/dk/SQLCommand.java	Sun Dec 22 23:31:55 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/SQLCommand.java	Sun Dec 22 23:55:07 2013 +0100
@@ -36,7 +36,9 @@
 		this.query = query;
 	}
 
-	public abstract PreparedStatement prepareStatement(Connection c) throws SQLException;
+	public PreparedStatement prepareStatement(Connection c) throws SQLException {
+		return c.prepareStatement(query);
+	}
 
 	public abstract void parametrize(PreparedStatement ps) throws SQLException;
 
--- a/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNamed.java	Sun Dec 22 23:31:55 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNamed.java	Sun Dec 22 23:55:07 2013 +0100
@@ -36,11 +36,6 @@
 	}
 
 	@Override
-	public PreparedStatement prepareStatement(Connection c) throws SQLException {
-		throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
-	}
-
-	@Override
 	public void parametrize(PreparedStatement ps) throws SQLException {
 		throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
 	}
--- a/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNumbered.java	Sun Dec 22 23:31:55 2013 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNumbered.java	Sun Dec 22 23:55:07 2013 +0100
@@ -37,11 +37,6 @@
 	}
 
 	@Override
-	public PreparedStatement prepareStatement(Connection c) throws SQLException {
-		return c.prepareStatement(getQuery());
-	}
-
-	@Override
 	public void parametrize(PreparedStatement ps) throws SQLException {
 		int i = 1;
 		for (Parameter p : notNull(parameters)) {