Improved BatchEncoder: writeNextString() v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Wed, 08 Jan 2014 19:24:26 +0100
branchv_0
changeset 147 4a704c1669f4
parent 146 4f4f515df807
child 148 1b2f40cd432b
Improved BatchEncoder: writeNextString()
java/sql-dk/src/info/globalcode/sql/dk/batch/BatchEncoder.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/batch/BatchEncoder.java	Wed Jan 08 19:18:52 2014 +0100
+++ b/java/sql-dk/src/info/globalcode/sql/dk/batch/BatchEncoder.java	Wed Jan 08 19:24:26 2014 +0100
@@ -45,9 +45,7 @@
 				sqlCommand = ((SQLCommandNamed) sqlCommand).getSQLCommandNumbered();
 			}
 
-			byte[] sqlBytes = toBytes(sqlCommand.getQuery());
-			buffer.writeInt(sqlBytes.length);
-			buffer.write(sqlBytes);
+			writeNextString(sqlCommand.getQuery(), buffer);
 
 			List<? extends Parameter> parameters = sqlCommand.getParameters();
 
@@ -55,9 +53,7 @@
 
 			for (Parameter p : parameters) {
 				buffer.writeInt(p.getType().getCode());
-				byte[] value = toBytes((String) p.getValue()); // parameters are encoded before any preprocessing
-				buffer.writeInt(value.length);
-				buffer.write(value);
+				writeNextString((String) p.getValue(), buffer); // parameters are encoded before any preprocessing
 			}
 
 			buffer.flush();
@@ -71,6 +67,12 @@
 		}
 	}
 
+	private void writeNextString(String s, DataOutputStream out) throws IOException {
+		byte[] bytes = toBytes(s);
+		out.writeInt(bytes.length);
+		out.write(bytes);
+	}
+
 	private static byte[] toBytes(String s) {
 		if (s == null) {
 			return new byte[]{};