equal
deleted
inserted
replaced
43 |
43 |
44 if (sqlCommand instanceof SQLCommandNamed) { |
44 if (sqlCommand instanceof SQLCommandNamed) { |
45 sqlCommand = ((SQLCommandNamed) sqlCommand).getSQLCommandNumbered(); |
45 sqlCommand = ((SQLCommandNamed) sqlCommand).getSQLCommandNumbered(); |
46 } |
46 } |
47 |
47 |
48 byte[] sqlBytes = toBytes(sqlCommand.getQuery()); |
48 writeNextString(sqlCommand.getQuery(), buffer); |
49 buffer.writeInt(sqlBytes.length); |
|
50 buffer.write(sqlBytes); |
|
51 |
49 |
52 List<? extends Parameter> parameters = sqlCommand.getParameters(); |
50 List<? extends Parameter> parameters = sqlCommand.getParameters(); |
53 |
51 |
54 buffer.writeInt(parameters.size()); |
52 buffer.writeInt(parameters.size()); |
55 |
53 |
56 for (Parameter p : parameters) { |
54 for (Parameter p : parameters) { |
57 buffer.writeInt(p.getType().getCode()); |
55 buffer.writeInt(p.getType().getCode()); |
58 byte[] value = toBytes((String) p.getValue()); // parameters are encoded before any preprocessing |
56 writeNextString((String) p.getValue(), buffer); // parameters are encoded before any preprocessing |
59 buffer.writeInt(value.length); |
|
60 buffer.write(value); |
|
61 } |
57 } |
62 |
58 |
63 buffer.flush(); |
59 buffer.flush(); |
64 bufferAOS.writeTo(out); |
60 bufferAOS.writeTo(out); |
65 out.flush(); |
61 out.flush(); |
69 } catch (SQLException e) { |
65 } catch (SQLException e) { |
70 throw new BatchException("Unable to converd named SQL command to numbered: " + sqlCommand, e); |
66 throw new BatchException("Unable to converd named SQL command to numbered: " + sqlCommand, e); |
71 } |
67 } |
72 } |
68 } |
73 |
69 |
|
70 private void writeNextString(String s, DataOutputStream out) throws IOException { |
|
71 byte[] bytes = toBytes(s); |
|
72 out.writeInt(bytes.length); |
|
73 out.write(bytes); |
|
74 } |
|
75 |
74 private static byte[] toBytes(String s) { |
76 private static byte[] toBytes(String s) { |
75 if (s == null) { |
77 if (s == null) { |
76 return new byte[]{}; |
78 return new byte[]{}; |
77 } else { |
79 } else { |
78 return s.getBytes(CHARSET); |
80 return s.getBytes(CHARSET); |