1 package com.protomatter.jdbc.pool; 2 3 import java.io.*; 4 import java.sql.*; 5 import java.util.Calendar ; 6 7 import com.protomatter.syslog.Channel; 8 9 14 class PreparedStatementWrapper 15 extends StatementWrapper 16 implements PreparedStatement 17 { 18 private ConnectionWrapper connection = null; 19 private PreparedStatement statement = null; 20 private boolean isClosed = false; 21 private Channel log = Channel.forPackage(PreparedStatementWrapper.class); 22 23 public PreparedStatementWrapper(ConnectionWrapper connection, PreparedStatement statement) 24 { 25 super(connection, statement); 26 this.connection = connection; 27 this.statement = statement; 28 } 29 30 public PreparedStatement getPreparedStatement() 31 { 32 if (this.statement == null) 33 return null; 34 return this.statement; 35 } 36 37 private final void checkClosed() 38 throws SQLException 39 { 40 if (this.isClosed) 41 throw new SQLException("PreparedStatement is already closed."); 42 } 43 44 public ResultSet executeQuery() 45 throws SQLException 46 { 47 checkClosed(); 48 return (ResultSet)callMethod(statement, "executeQuery"); 49 } 50 51 public int executeUpdate() 52 throws SQLException 53 { 54 checkClosed(); 55 return callIntMethod(statement, "executeUpdate", new Class [0], new Object [0]); 56 } 57 58 public void setNull(int index, int type) 59 throws SQLException 60 { 61 checkClosed(); 62 callMethod(statement, "setNull", new Class [] { Integer.TYPE, Integer.TYPE }, new Object [] { new Integer (index), new Integer (type) }); 63 } 64 65 public void setBoolean(int index, boolean value) 66 throws SQLException 67 { 68 checkClosed(); 69 callMethod(statement, "setBoolean", new Class [] { Integer.TYPE, Boolean.TYPE }, new Object [] { new Integer (index), new Boolean (value) }); 70 } 71 72 public void setByte(int index, byte value) 73 throws SQLException 74 { 75 checkClosed(); 76 callMethod(statement, "setByte", new Class [] { Integer.TYPE, Integer.TYPE }, new Object [] { new Integer (index), new Integer (value) }); 77 } 78 79 public void setShort(int index, short value) 80 throws SQLException 81 { 82 checkClosed(); 83 callMethod(statement, "setShort", new Class [] { Integer.TYPE, Short.TYPE }, new Object [] { new Integer (index), new Short (value) }); 84 } 85 86 public void setInt(int index, int value) 87 throws SQLException 88 { 89 checkClosed(); 90 callMethod(statement, "setInt", new Class [] { Integer.TYPE, Integer.TYPE }, new Object [] { new Integer (index), new Integer (value) }); 91 } 92 93 public void setLong(int index, long value) 94 throws SQLException 95 { 96 checkClosed(); 97 callMethod(statement, "setLong", new Class [] { Integer.TYPE, Long.TYPE }, new Object [] { new Integer (index), new Long (value) }); 98 } 99 100 public void setFloat(int index, float value) 101 throws SQLException 102 { 103 checkClosed(); 104 callMethod(statement, "setFloat", new Class [] { Integer.TYPE, Float.TYPE }, new Object [] { new Integer (index), new Float (value) }); 105 } 106 107 public void setDouble(int index, double value) 108 throws SQLException 109 { 110 checkClosed(); 111 callMethod(statement, "setDouble", new Class [] { Integer.TYPE, Double.TYPE }, new Object [] { new Integer (index), new Double (value) }); 112 } 113 114 public void setBigDecimal(int index, java.math.BigDecimal value) 115 throws SQLException 116 { 117 checkClosed(); 118 callMethod(statement, "setBigDecimal", new Class [] { Integer.TYPE, java.math.BigDecimal .class }, 119 new Object [] { new Integer (index), value }); 120 } 121 122 public void setString(int index, String value) 123 throws SQLException 124 { 125 checkClosed(); 126 callMethod(statement, "setString", new Class [] { Integer.TYPE, String .class }, new Object [] { new Integer (index), value }); 127 } 128 129 public void setBytes(int index, byte[] value) 130 throws SQLException 131 { 132 checkClosed(); 133 callMethod(statement, "setBytes", new Class [] { Integer.TYPE, byte[].class }, new Object [] { new Integer (index), value }); 134 } 135 136 public void setDate(int index, Date value) 137 throws SQLException 138 { 139 checkClosed(); 140 callMethod(statement, "setDate", new Class [] { Integer.TYPE, Date.class }, new Object [] { new Integer (index), value }); 141 } 142 143 public void setTime(int index, Time value) 144 throws SQLException 145 { 146 checkClosed(); 147 callMethod(statement, "setTime", new Class [] { Integer.TYPE, Time.class }, new Object [] { new Integer (index), value }); 148 } 149 150 public void setTimestamp(int index, Timestamp value) 151 throws SQLException 152 { 153 checkClosed(); 154 callMethod(statement, "setTimestamp", new Class [] { Integer.TYPE, Timestamp.class }, new Object [] { new Integer (index), value }); 155 } 156 157 public void setAsciiStream(int index, InputStream input, int length) 158 throws SQLException 159 { 160 checkClosed(); 161 callMethod(statement, "setAsciiStream", new Class [] { Integer.TYPE, InputStream.class, Integer.TYPE }, 162 new Object [] { new Integer (index), input, new Integer (length) }); 163 } 164 165 public void setUnicodeStream(int index, InputStream input, int length) 166 throws SQLException 167 { 168 checkClosed(); 169 callMethod(statement, "setUnicodeStream", new Class [] { Integer.TYPE, InputStream.class, Integer.TYPE }, 170 new Object [] { new Integer (index), input, new Integer (length) }); 171 } 172 173 public void setBinaryStream(int index, InputStream input, int length) 174 throws SQLException 175 { 176 checkClosed(); 177 callMethod(statement, "setBinaryStream", new Class [] { Integer.TYPE, InputStream.class, Integer.TYPE }, 178 new Object [] { new Integer (index), input, new Integer (length) }); 179 } 180 181 public void clearParameters() 182 throws SQLException 183 { 184 checkClosed(); 185 callMethod(statement, "clearParameters"); 186 } 187 188 public void setObject(int index, Object value, int targetType, int scale) 189 throws SQLException 190 { 191 checkClosed(); 192 callMethod(statement, "setObject", new Class [] { Integer.TYPE, Object .class, Integer.TYPE, Integer.TYPE }, 193 new Object [] { new Integer (index), value, new Integer (targetType), new Integer (scale) }); 194 } 195 196 public void setObject(int index, Object value, int targetType) 197 throws SQLException 198 { 199 checkClosed(); 200 callMethod(statement, "setObject", new Class [] { Integer.TYPE, Object .class, Integer.TYPE }, 201 new Object [] { new Integer (index), value, new Integer (targetType) }); 202 } 203 204 public void setObject(int index, Object value) 205 throws SQLException 206 { 207 checkClosed(); 208 callMethod(statement, "setObject", new Class [] { Integer.TYPE, Object .class }, new Object [] { new Integer (index), value }); 209 } 210 211 public boolean execute() 212 throws SQLException 213 { 214 checkClosed(); 215 return callBooleanMethod(statement, "execute", new Class [0], new Object [0]); 216 } 217 218 public void addBatch() 219 throws SQLException 220 { 221 checkClosed(); 222 callMethod(statement, "addBatch"); 223 } 224 225 public void setCharacterStream(int index, Reader reader, int length) 226 throws SQLException 227 { 228 checkClosed(); 229 callMethod(statement, "setCharacterStream", new Class [] { Integer.TYPE, Reader.class, Integer.TYPE }, 230 new Object [] { new Integer (index), reader, new Integer (length) }); 231 } 232 233 public void setRef(int index, Ref value) 234 throws SQLException 235 { 236 checkClosed(); 237 callMethod(statement, "setRef", new Class [] { Integer.TYPE, Ref.class }, new Object [] { new Integer (index), value }); 238 } 239 240 public void setBlob(int index, Blob value) 241 throws SQLException 242 { 243 checkClosed(); 244 callMethod(statement, "setBlob", new Class [] { Integer.TYPE, Blob.class }, new Object [] { new Integer (index), value }); 245 } 246 247 public void setClob(int index, Clob value) 248 throws SQLException 249 { 250 checkClosed(); 251 callMethod(statement, "setClob", new Class [] { Integer.TYPE, Clob.class }, new Object [] { new Integer (index), value }); 252 } 253 254 public void setArray(int index, Array value) 255 throws SQLException 256 { 257 checkClosed(); 258 callMethod(statement, "setArray", new Class [] { Integer.TYPE, Array.class }, new Object [] { new Integer (index), value }); 259 } 260 261 public ResultSetMetaData getMetaData() 262 throws SQLException 263 { 264 checkClosed(); 265 return (ResultSetMetaData)callMethod(statement, "getMetaData"); 266 } 267 268 public void setDate(int index, Date value, Calendar cal) 269 throws SQLException 270 { 271 checkClosed(); 272 callMethod(statement, "setDate", new Class [] { Integer.TYPE, Date.class, Calendar .class }, 273 new Object [] { new Integer (index), value, cal } ); 274 } 275 276 public void setTime(int index, Time value, Calendar cal) 277 throws SQLException 278 { 279 checkClosed(); 280 callMethod(statement, "setTime", new Class [] { Integer.TYPE, Time.class, Calendar .class }, 281 new Object [] { new Integer (index), value, cal } ); 282 } 283 284 public void setTimestamp(int index, Timestamp value, Calendar cal) 285 throws SQLException 286 { 287 checkClosed(); 288 callMethod(statement, "setTimestamp", new Class [] { Integer.TYPE, Timestamp.class, Calendar .class }, 289 new Object [] { new Integer (index), value, cal } ); 290 } 291 292 public void setNull(int index, int type, String typeName) 293 throws SQLException 294 { 295 checkClosed(); 296 callMethod(statement, "setNull", new Class [] { Integer.TYPE, Integer.TYPE, String .class }, 297 new Object [] { new Integer (index), new Integer (type), typeName } ); 298 } 299 } 300 | Popular Tags |