+/* $Id: ClusterResultSet.java 94 2008-12-18 11:07:17Z dobashi $\r
+ * create: 2004/10/28\r
+ * (c)2004 Lavans Networks Inc. All Rights Reserved.\r
+ */\r
+package com.lavans.luz2.sql.cluster;\r
+\r
+import java.io.InputStream;\r
+import java.io.Reader;\r
+import java.math.BigDecimal;\r
+import java.net.URL;\r
+import java.sql.Array;\r
+import java.sql.Blob;\r
+import java.sql.Clob;\r
+import java.sql.Date;\r
+import java.sql.NClob;\r
+import java.sql.Ref;\r
+import java.sql.ResultSet;\r
+import java.sql.ResultSetMetaData;\r
+import java.sql.RowId;\r
+import java.sql.SQLException;\r
+import java.sql.SQLWarning;\r
+import java.sql.SQLXML;\r
+import java.sql.Statement;\r
+import java.sql.Time;\r
+import java.sql.Timestamp;\r
+import java.util.ArrayList;\r
+import java.util.Calendar;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+/**\r
+ * クラスタ接続対応ResultSet。\r
+ * getString(),getInt()等のデータを取得する処理の最中に\r
+ * Exceptionが発生した場合に、DB接続先の切り替えを行う。\r
+ *\r
+ * 一つのStatementから複数のResultSetを生成している場合、\r
+ * ResultSet内でDB切替が起きると最後に生成したResultSetを\r
+ * 再生成する。従って、利用する側では先に取得したResultSetに\r
+ * 対する処理をすべて終わらせてclose()してから次の\r
+ * ResultSetを取得するようにすること。複数のResultSetを\r
+ * 取得するより、Statementを複数生成するようにした方が\r
+ * 望ましい。\r
+ *\r
+ * △\r
+ * st = con.createStatement();\r
+ * rs1 = st.executeQuery(sql1);\r
+ * rs2 = st.executeQuery(sql2);\r
+ * ○\r
+ * st1 = con.createStatement();\r
+ * st2 = con.createStatement();\r
+ * rs1 = st1.executeQuery(sql1);\r
+ * rs2 = st2.executeQuery(sql2);\r
+ *\r
+ *\r
+ * @author dobashi\r
+ * @version 1.00\r
+ */\r
+public class ClusterResultSet implements ResultSet {\r
+ /** Messageクラスに移動? */\r
+ protected static final String MSG_WARN_SWITCH_DB="ResultSet内で障害が出たので接続先を切り替えます。";\r
+ protected static final String MSG_ERR_RECREATE="ResultSetの再生成に失敗。";\r
+\r
+ /** 処理移譲先 */\r
+ private ResultSet rs = null;\r
+\r
+ /**\r
+ * 自分を生成したStatement。\r
+ * ClusterStatement/ClusterPreparedStatement/ClusterCollableStatementのどれか。\r
+ */\r
+ private ClusterStatementInterface st = null;\r
+\r
+ /** ロガー。debug用 */\r
+ private static Log logger = LogFactory.getLog(ClusterResultSet.class);\r
+\r
+ /**\r
+ * 保存しておくメソッドのリスト。\r
+ * 障害が発生した場合、ResultSetに対する操作を操作が行われた\r
+ * 順序どおりに再実行する必要がある。\r
+ *\r
+ * ただし、first(),beforeFirst(),last(),afterLast()が呼び出された場合は、\r
+ * それ以前に実行されたカーソル移動系メソッドは無視してよいので、\r
+ * methodListから削除する処理を追加したい。\r
+ */\r
+ private List<CalledMethod> methodList = null;\r
+\r
+ /**\r
+ * コンストラクタ。\r
+ * @param rs\r
+ */\r
+ public ClusterResultSet(ClusterStatementInterface st, ResultSet rs){\r
+ this.st = st;\r
+ this.rs = rs;\r
+ methodList = new ArrayList<CalledMethod>();\r
+ }\r
+\r
+ /**\r
+ * とっておいたResultSetへのアクセスを再設定(障害時切替用)。\r
+ * @param rs 新しいResultSet\r
+ */\r
+ private void setParameters(ResultSet rs) throws SQLException{\r
+ for(int i=0; i<methodList.size(); i++){\r
+ CalledMethod calledMethod = methodList.get(i);\r
+ try{\r
+ calledMethod.invoke(rs); // 戻り値は無視して良い\r
+ }catch (Exception e) {\r
+ logger.error(MSG_ERR_RECREATE, e);\r
+ throw new SQLException(MSG_ERR_RECREATE);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ * クラスタリング対応のメソッド実行処理。\r
+ * @param methodName\r
+ * @param args\r
+ * @return\r
+ * @throws SQLException\r
+ */\r
+ private Object clusterCall(String methodName, Object[] args, Class<?>[] parameterTypes) throws SQLException{\r
+ Object result = null;\r
+ CalledMethod calledMethod = new CalledMethod(methodName, args, parameterTypes);\r
+ try{\r
+ result = calledMethod.invoke(rs);\r
+ }catch (Exception e) {\r
+ logger.debug(MSG_WARN_SWITCH_DB+e.getMessage());\r
+ try { rs.close(); } catch (SQLException se) {}\r
+ rs = st.getAnotherResultSet();\r
+ try{\r
+ setParameters(rs);\r
+ result = calledMethod.invoke(rs);\r
+ }catch (Exception e2) {\r
+ // 再度実行。ここでもさらにエラーがでるならSQLExceptionにラップする。\r
+ throw new SQLException(e2.getMessage());\r
+ }\r
+ }\r
+ methodList.add(calledMethod);\r
+\r
+ return result;\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getConcurrency()\r
+ */\r
+ public int getConcurrency() throws SQLException {\r
+ return ((Integer)clusterCall("getConcurrency", null, null)).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getFetchDirection()\r
+ */\r
+ public int getFetchDirection() throws SQLException {\r
+ return ((Integer)clusterCall("getFetchDirection", null, null)).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getFetchSize()\r
+ */\r
+ public int getFetchSize() throws SQLException {\r
+ return ((Integer)clusterCall("getFetchSize", null, null)).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getRow()\r
+ */\r
+ public int getRow() throws SQLException {\r
+ return ((Integer)clusterCall("getRow", null, null)).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getType()\r
+ */\r
+ public int getType() throws SQLException {\r
+ return ((Integer)clusterCall("getType", null, null)).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#afterLast()\r
+ */\r
+ public void afterLast() throws SQLException {\r
+ clusterCall("afterLast", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#beforeFirst()\r
+ */\r
+ public void beforeFirst() throws SQLException {\r
+ clusterCall("beforeFirst", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#cancelRowUpdates()\r
+ */\r
+ public void cancelRowUpdates() throws SQLException {\r
+ clusterCall("cancelRowUpdates", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#clearWarnings()\r
+ */\r
+ public void clearWarnings() throws SQLException {\r
+ clusterCall("clearWarnings", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#close()\r
+ */\r
+ public void close() throws SQLException {\r
+ clusterCall("close", null, null);\r
+ methodList.clear();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#deleteRow()\r
+ */\r
+ public void deleteRow() throws SQLException {\r
+ clusterCall("deleteRow", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#insertRow()\r
+ */\r
+ public void insertRow() throws SQLException {\r
+ clusterCall("insertRow", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#moveToCurrentRow()\r
+ */\r
+ public void moveToCurrentRow() throws SQLException {\r
+ clusterCall("moveToCurrentRow", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#moveToInsertRow()\r
+ */\r
+ public void moveToInsertRow() throws SQLException {\r
+ clusterCall("moveToInsertRow", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#refreshRow()\r
+ */\r
+ public void refreshRow() throws SQLException {\r
+ clusterCall("refreshRow", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateRow()\r
+ */\r
+ public void updateRow() throws SQLException {\r
+ clusterCall("updateRow", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#first()\r
+ */\r
+ public boolean first() throws SQLException {\r
+ return ((Boolean)clusterCall("first", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#isAfterLast()\r
+ */\r
+ public boolean isAfterLast() throws SQLException {\r
+ return ((Boolean)clusterCall("isAfterLast", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#isBeforeFirst()\r
+ */\r
+ public boolean isBeforeFirst() throws SQLException {\r
+ return ((Boolean)clusterCall("isBeforeFirst", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#isFirst()\r
+ */\r
+ public boolean isFirst() throws SQLException {\r
+ return ((Boolean)clusterCall("isFirst", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#isLast()\r
+ */\r
+ public boolean isLast() throws SQLException {\r
+ return ((Boolean)clusterCall("isLast", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#last()\r
+ */\r
+ public boolean last() throws SQLException {\r
+ // Method#invoke()でBooleanに自動ラップされている。\r
+ return ((Boolean)clusterCall("last", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * カーソルを現在の位置から 1 行下に移動します。\r
+ * @see java.sql.ResultSet#next()\r
+ */\r
+ public boolean next() throws SQLException {\r
+ // Method#invoke()でBooleanに自動ラップされている。\r
+ return ((Boolean)clusterCall("next", null, null)).booleanValue();\r
+ }\r
+\r
+\r
+ /**\r
+ * カーソルを現在の位置から 1 行上に移動します。\r
+ * @see java.sql.ResultSet#previous()\r
+ */\r
+ public boolean previous() throws SQLException {\r
+ // Method#invoke()でBooleanに自動ラップされている。\r
+ return ((Boolean)clusterCall("previos", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#rowDeleted()\r
+ */\r
+ public boolean rowDeleted() throws SQLException {\r
+ // Method#invoke()でBooleanに自動ラップされている。\r
+ return ((Boolean)clusterCall("rowDeleted", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#rowInserted()\r
+ */\r
+ public boolean rowInserted() throws SQLException {\r
+ return ((Boolean)clusterCall("rowInserted", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#rowUpdated()\r
+ */\r
+ public boolean rowUpdated() throws SQLException {\r
+ return ((Boolean)clusterCall("rowUpdated", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#wasNull()\r
+ */\r
+ public boolean wasNull() throws SQLException {\r
+ return ((Boolean)clusterCall("wasNull", null, null)).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getByte(int)\r
+ */\r
+ public byte getByte(int columnIndex) throws SQLException {\r
+ // Method#invoke()でByteに自動ラップされている。\r
+ return ((Byte)clusterCall("getByte", new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).byteValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getDouble(int)\r
+ */\r
+ public double getDouble(int columnIndex) throws SQLException {\r
+ return ((Double)clusterCall("getDouble", new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).doubleValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getFloat(int)\r
+ */\r
+ public float getFloat(int columnIndex) throws SQLException {\r
+ return ((Float)clusterCall("getFloat", new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).floatValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getInt(int)\r
+ */\r
+ public int getInt(int columnIndex) throws SQLException {\r
+ return ((Integer)clusterCall("getInt",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getLong(int)\r
+ */\r
+ public long getLong(int columnIndex) throws SQLException {\r
+ return ((Long)clusterCall("getLong",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).longValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getShort(int)\r
+ */\r
+ public short getShort(int columnIndex) throws SQLException {\r
+ return ((Short)clusterCall("getShort",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).shortValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#setFetchDirection(int)\r
+ */\r
+ public void setFetchDirection(int direction) throws SQLException {\r
+ clusterCall("setFetchDirection",new Object[]{new Integer(direction)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#setFetchSize(int)\r
+ */\r
+ public void setFetchSize(int rows) throws SQLException {\r
+ clusterCall("getDouble",new Object[]{new Integer(rows)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ *\r
+ * @see java.sql.ResultSet#updateNull(int)\r
+ */\r
+ public void updateNull(int columnIndex) throws SQLException {\r
+ clusterCall("getDouble",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#absolute(int)\r
+ */\r
+ public boolean absolute(int row) throws SQLException {\r
+ return ((Boolean)clusterCall("absolute",new Object[]{new Integer(row)}, new Class[]{Integer.TYPE})).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBoolean(int)\r
+ */\r
+ public boolean getBoolean(int columnIndex) throws SQLException {\r
+ return ((Boolean)clusterCall("getBoolean",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE})).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#relative(int)\r
+ */\r
+ public boolean relative(int rows) throws SQLException {\r
+ return ((Boolean)clusterCall("relative",new Object[]{new Integer(rows)}, new Class[]{Integer.TYPE})).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBytes(int)\r
+ */\r
+ public byte[] getBytes(int columnIndex) throws SQLException {\r
+ return (byte[])clusterCall("getBytes",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateByte(int, byte)\r
+ */\r
+ public void updateByte(int columnIndex, byte x) throws SQLException {\r
+ clusterCall("updateByte",new Object[]{new Integer(columnIndex), new Byte[x]}, new Class[]{Integer.TYPE, Byte.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateDouble(int, double)\r
+ */\r
+ public void updateDouble(int columnIndex, double x) throws SQLException {\r
+ clusterCall("updateDouble",new Object[]{new Integer(columnIndex), new Double(x)}, new Class[]{Integer.TYPE, Double.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateFloat(int, float)\r
+ */\r
+ public void updateFloat(int columnIndex, float x) throws SQLException {\r
+ clusterCall("updateFloat",new Object[]{new Integer(columnIndex), new Float(x)}, new Class[]{Integer.TYPE, Float.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateInt(int, int)\r
+ */\r
+ public void updateInt(int columnIndex, int x) throws SQLException {\r
+ clusterCall("updateInt",new Object[]{new Integer(columnIndex), new Integer(x)}, new Class[]{Integer.TYPE, Integer.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateLong(int, long)\r
+ */\r
+ public void updateLong(int columnIndex, long x) throws SQLException {\r
+ clusterCall("updateLong",new Object[]{new Integer(columnIndex), new Long(x)}, new Class[]{Integer.TYPE, Long.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateShort(int, short)\r
+ */\r
+ public void updateShort(int columnIndex, short x) throws SQLException {\r
+ clusterCall("updateShort",new Object[]{new Integer(columnIndex), new Short(x)}, new Class[]{Integer.TYPE, Short.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBoolean(int, boolean)\r
+ */\r
+ public void updateBoolean(int columnIndex, boolean x) throws SQLException {\r
+ clusterCall("updateBoolean",new Object[]{new Integer(columnIndex), new Boolean(x)}, new Class[]{Integer.TYPE, Boolean.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBytes(int, byte[])\r
+ */\r
+ public void updateBytes(int columnIndex, byte[] x) throws SQLException {\r
+ clusterCall("updateBytes",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, byte[].class});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getAsciiStream(int)\r
+ */\r
+ public InputStream getAsciiStream(int columnIndex) throws SQLException {\r
+ return (InputStream)clusterCall("getAsciiStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBinaryStream(int)\r
+ */\r
+ public InputStream getBinaryStream(int columnIndex) throws SQLException {\r
+ return (InputStream)clusterCall("getBinaryStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @deprecated\r
+ * @see java.sql.ResultSet#getUnicodeStream(int)\r
+ */\r
+ public InputStream getUnicodeStream(int columnIndex) throws SQLException {\r
+ return (InputStream)clusterCall("getUnicodeStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateAsciiStream(int, java.io.InputStream, int)\r
+ */\r
+ public void updateAsciiStream(int columnIndex, InputStream x, int length)\r
+ throws SQLException {\r
+ clusterCall("updateAsciiStream",new Object[]{new Integer(columnIndex), x, new Integer(length)},\r
+ new Class[]{Integer.TYPE, InputStream.class, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBinaryStream(int, java.io.InputStream, int)\r
+ */\r
+ public void updateBinaryStream(int columnIndex, InputStream x, int length)\r
+ throws SQLException {\r
+ clusterCall("updateBinaryStream",new Object[]{new Integer(columnIndex), x, new Integer(length)},\r
+ new Class[]{Integer.TYPE, InputStream.class, Integer.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getCharacterStream(int)\r
+ */\r
+ public Reader getCharacterStream(int columnIndex) throws SQLException {\r
+ return (Reader)clusterCall("getCharacterStream",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateCharacterStream(int, java.io.Reader, int)\r
+ */\r
+ public void updateCharacterStream(int columnIndex, Reader x, int length)\r
+ throws SQLException {\r
+ clusterCall("updateCharacterStream",new Object[]{new Integer(columnIndex), x, new Integer(length)}, new Class[]{Integer.TYPE, Reader.class, Integer.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getObject(int)\r
+ */\r
+ public Object getObject(int columnIndex) throws SQLException {\r
+ return clusterCall("getObject",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateObject(int, java.lang.Object)\r
+ */\r
+ public void updateObject(int columnIndex, Object x) throws SQLException {\r
+ clusterCall("updateObject",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Object.class});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateObject(int, java.lang.Object, int)\r
+ */\r
+ public void updateObject(int columnIndex, Object x, int scale)\r
+ throws SQLException {\r
+ clusterCall("updateObject",new Object[]{new Integer(columnIndex), x, new Integer(scale)},\r
+ new Class[]{Integer.TYPE, Object.class, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getCursorName()\r
+ */\r
+ public String getCursorName() throws SQLException {\r
+ return (String)clusterCall("getCursorName", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getString(int)\r
+ */\r
+ public String getString(int columnIndex) throws SQLException {\r
+ return (String)clusterCall("getString",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateString(int, java.lang.String)\r
+ */\r
+ public void updateString(int columnIndex, String x) throws SQLException {\r
+ clusterCall("updateString",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getByte(java.lang.String)\r
+ */\r
+ public byte getByte(String columnName) throws SQLException {\r
+ return ((Byte)clusterCall("getByte",new Object[]{columnName}, new Class[]{String.class})).byteValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getDouble(java.lang.String)\r
+ */\r
+ public double getDouble(String columnName) throws SQLException {\r
+ return ((Double)clusterCall("getDouble",new Object[]{columnName}, new Class[]{String.class})).doubleValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getFloat(java.lang.String)\r
+ */\r
+ public float getFloat(String columnName) throws SQLException {\r
+ return ((Float)clusterCall("getFloat",new Object[]{columnName}, new Class[]{String.class})).floatValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#findColumn(java.lang.String)\r
+ */\r
+ public int findColumn(String columnName) throws SQLException {\r
+ return ((Integer)clusterCall("findColumn",new Object[]{columnName}, new Class[]{String.class})).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getInt(java.lang.String)\r
+ */\r
+ public int getInt(String columnName) throws SQLException {\r
+ return ((Integer)clusterCall("getInt",new Object[]{columnName}, new Class[]{String.class})).intValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getLong(java.lang.String)\r
+ */\r
+ public long getLong(String columnName) throws SQLException {\r
+ return ((Long)clusterCall("getLong",new Object[]{columnName}, new Class[]{String.class})).longValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getShort(java.lang.String)\r
+ */\r
+ public short getShort(String columnName) throws SQLException {\r
+ return ((Short)clusterCall("getShort",new Object[]{columnName}, new Class[]{String.class})).shortValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateNull(java.lang.String)\r
+ */\r
+ public void updateNull(String columnName) throws SQLException {\r
+ clusterCall("updateNull",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBoolean(java.lang.String)\r
+ */\r
+ public boolean getBoolean(String columnName) throws SQLException {\r
+ return ((Boolean)clusterCall("getBoolean",new Object[]{columnName}, new Class[]{String.class})).booleanValue();\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBytes(java.lang.String)\r
+ */\r
+ public byte[] getBytes(String columnName) throws SQLException {\r
+ return (byte[])clusterCall("getBytes",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateByte(java.lang.String, byte)\r
+ */\r
+ public void updateByte(String columnName, byte x) throws SQLException {\r
+ clusterCall("updateByte",new Object[]{columnName, new Byte(x)}, new Class[]{String.class, Byte.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateDouble(java.lang.String, double)\r
+ */\r
+ public void updateDouble(String columnName, double x) throws SQLException {\r
+ clusterCall("updateDouble",new Object[]{columnName, new Double(x)}, new Class[]{String.class, Double.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateFloat(java.lang.String, float)\r
+ */\r
+ public void updateFloat(String columnName, float x) throws SQLException {\r
+ clusterCall("updateFloat",new Object[]{columnName, new Float(x)}, new Class[]{String.class, Float.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateInt(java.lang.String, int)\r
+ */\r
+ public void updateInt(String columnName, int x) throws SQLException {\r
+ clusterCall("updateInt",new Object[]{columnName, new Integer(x)}, new Class[]{String.class, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateLong(java.lang.String, long)\r
+ */\r
+ public void updateLong(String columnName, long x) throws SQLException {\r
+ clusterCall("updateLong",new Object[]{columnName, new Long(x)}, new Class[]{String.class, Long.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateShort(java.lang.String, short)\r
+ */\r
+ public void updateShort(String columnName, short x) throws SQLException {\r
+ clusterCall("updateShort",new Object[]{columnName, new Short(x)}, new Class[]{String.class, Short.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBoolean(java.lang.String, boolean)\r
+ */\r
+ public void updateBoolean(String columnName, boolean x)\r
+ throws SQLException {\r
+ clusterCall("updateBoolean",new Object[]{columnName, new Boolean(x)}, new Class[]{String.class, Boolean.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBytes(java.lang.String, byte[])\r
+ */\r
+ public void updateBytes(String columnName, byte[] x) throws SQLException {\r
+ clusterCall("updateBytes",new Object[]{columnName, x}, new Class[]{String.class, byte[].class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBigDecimal(int)\r
+ */\r
+ public BigDecimal getBigDecimal(int columnIndex) throws SQLException {\r
+ return (BigDecimal)clusterCall("getBigDecimal",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @deprecated\r
+ * @see java.sql.ResultSet#getBigDecimal(int, int)\r
+ */\r
+ public BigDecimal getBigDecimal(int columnIndex, int scale)\r
+ throws SQLException {\r
+ return (BigDecimal)clusterCall("getBigDecimal",new Object[]{new Integer(columnIndex), new Integer(scale)}, new Class[]{Integer.TYPE, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBigDecimal(int, java.math.BigDecimal)\r
+ */\r
+ public void updateBigDecimal(int columnIndex, BigDecimal x)\r
+ throws SQLException {\r
+ clusterCall("updateBytes",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, BigDecimal.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getURL(int)\r
+ */\r
+ public URL getURL(int columnIndex) throws SQLException {\r
+ return (URL)clusterCall("getURL",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getArray(int)\r
+ */\r
+ public Array getArray(int i) throws SQLException {\r
+ return (Array)clusterCall("getArray",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateArray(int, java.sql.Array)\r
+ */\r
+ public void updateArray(int columnIndex, Array x) throws SQLException {\r
+ clusterCall("updateArray",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Array.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBlob(int)\r
+ */\r
+ public Blob getBlob(int i) throws SQLException {\r
+ return (Blob)clusterCall("getBlob",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBlob(int, java.sql.Blob)\r
+ */\r
+ public void updateBlob(int columnIndex, Blob x) throws SQLException {\r
+ clusterCall("updateBlob",new Object[]{new Integer(columnIndex), x}, new Class[]{Blob.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getClob(int)\r
+ */\r
+ public Clob getClob(int i) throws SQLException {\r
+ return (Clob)clusterCall("getClob",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateClob(int, java.sql.Clob)\r
+ */\r
+ public void updateClob(int columnIndex, Clob x) throws SQLException {\r
+ clusterCall("updateClob",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Clob.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getDate(int)\r
+ */\r
+ public Date getDate(int columnIndex) throws SQLException {\r
+ return (Date)clusterCall("getDate",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateDate(int, java.sql.Date)\r
+ */\r
+ public void updateDate(int columnIndex, Date x) throws SQLException {\r
+ clusterCall("updateDate",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Date.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getRef(int)\r
+ */\r
+ public Ref getRef(int i) throws SQLException {\r
+ return (Ref)clusterCall("getRef",new Object[]{new Integer(i)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateRef(int, java.sql.Ref)\r
+ */\r
+ public void updateRef(int columnIndex, Ref x) throws SQLException {\r
+ clusterCall("updateRef",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Ref.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getMetaData()\r
+ */\r
+ public ResultSetMetaData getMetaData() throws SQLException {\r
+ return (ResultSetMetaData)clusterCall("getMetaData", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getWarnings()\r
+ */\r
+ public SQLWarning getWarnings() throws SQLException {\r
+ return (SQLWarning)clusterCall("getWarnings", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getStatement()\r
+ */\r
+ public Statement getStatement() throws SQLException {\r
+ return (Statement)clusterCall("getStatement", null, null);\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTime(int)\r
+ */\r
+ public Time getTime(int columnIndex) throws SQLException {\r
+ return (Time)clusterCall("getTime",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateTime(int, java.sql.Time)\r
+ */\r
+ public void updateTime(int columnIndex, Time x) throws SQLException {\r
+ clusterCall("updateTime",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE, Time.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTimestamp(int)\r
+ */\r
+ public Timestamp getTimestamp(int columnIndex) throws SQLException {\r
+ return (Timestamp)clusterCall("getTimestamp",new Object[]{new Integer(columnIndex)}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateTimestamp(int, java.sql.Timestamp)\r
+ */\r
+ public void updateTimestamp(int columnIndex, Timestamp x)\r
+ throws SQLException {\r
+ clusterCall("updateTimestamp",new Object[]{new Integer(columnIndex), x}, new Class[]{Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getAsciiStream(java.lang.String)\r
+ */\r
+ public InputStream getAsciiStream(String columnName) throws SQLException {\r
+ return (InputStream)clusterCall("getAsciiStream",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBinaryStream(java.lang.String)\r
+ */\r
+ public InputStream getBinaryStream(String columnName) throws SQLException {\r
+ return (InputStream)clusterCall("getBinaryStream",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @deprecated\r
+ * @see java.sql.ResultSet#getUnicodeStream(java.lang.String)\r
+ */\r
+ public InputStream getUnicodeStream(String columnName)\r
+ throws SQLException {\r
+ return (InputStream)clusterCall("getUnicodeStream",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateAsciiStream(java.lang.String, java.io.InputStream, int)\r
+ */\r
+ public void updateAsciiStream(String columnName, InputStream x, int length)\r
+ throws SQLException {\r
+ clusterCall("updateAsciiStream",new Object[]{columnName, x, new Integer(length)}, new Class[]{String.class, InputStream.class, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBinaryStream(java.lang.String, java.io.InputStream, int)\r
+ */\r
+ public void updateBinaryStream(\r
+ String columnName,\r
+ InputStream x,\r
+ int length)\r
+ throws SQLException {\r
+ clusterCall("updateBinaryStream",new Object[]{columnName, x, new Integer(length)}, new Class[]{String.class, InputStream.class, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getCharacterStream(java.lang.String)\r
+ */\r
+ public Reader getCharacterStream(String columnName) throws SQLException {\r
+ return (Reader)clusterCall("getCharacterStream",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateCharacterStream(java.lang.String, java.io.Reader, int)\r
+ */\r
+ public void updateCharacterStream(\r
+ String columnName,\r
+ Reader reader,\r
+ int length)\r
+ throws SQLException {\r
+ clusterCall("updateCharacterStream",new Object[]{columnName, reader, new Integer(length)}, new Class[]{String.class, Reader.class, Integer.TYPE});\r
+\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getObject(java.lang.String)\r
+ */\r
+ public Object getObject(String columnName) throws SQLException {\r
+ return clusterCall("getObject",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object)\r
+ */\r
+ public void updateObject(String columnName, Object x) throws SQLException {\r
+ clusterCall("updateObject",new Object[]{columnName, x}, new Class[]{String.class, Object.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateObject(java.lang.String, java.lang.Object, int)\r
+ */\r
+ public void updateObject(String columnName, Object x, int scale)\r
+ throws SQLException {\r
+ clusterCall("updateObject",new Object[]{columnName, x, new Integer(scale)}, new Class[]{String.class, Object.class, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @throws SQLException\r
+ * @see java.sql.ResultSet#getObject(int, java.util.Map)\r
+ */\r
+ //@Override\r
+ public Object getObject(int i, Map<String, Class<?>> map) throws SQLException{\r
+ return clusterCall("getObject",new Object[]{new Integer(i), map}, new Class[]{Integer.TYPE, Map.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getString(java.lang.String)\r
+ */\r
+ public String getString(String columnName) throws SQLException {\r
+ return (String)clusterCall("getString",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateString(java.lang.String, java.lang.String)\r
+ */\r
+ public void updateString(String columnName, String x) throws SQLException {\r
+ clusterCall("updateString",new Object[]{columnName, x}, new Class[]{String.class, String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBigDecimal(java.lang.String)\r
+ */\r
+ public BigDecimal getBigDecimal(String columnName) throws SQLException {\r
+ return (BigDecimal)clusterCall("getBigDecimal",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @deprecated\r
+ * @see java.sql.ResultSet#getBigDecimal(java.lang.String, int)\r
+ */\r
+ public BigDecimal getBigDecimal(String columnName, int scale)\r
+ throws SQLException {\r
+ return (BigDecimal)clusterCall("getBigDecimal",new Object[]{columnName, new Integer(scale)}, new Class[]{String.class, Integer.TYPE});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBigDecimal(java.lang.String, java.math.BigDecimal)\r
+ */\r
+ public void updateBigDecimal(String columnName, BigDecimal x)\r
+ throws SQLException {\r
+ clusterCall("updateBigDecimal",new Object[]{columnName, x}, new Class[]{String.class, BigDecimal.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getURL(java.lang.String)\r
+ */\r
+ public URL getURL(String columnName) throws SQLException {\r
+ return (URL)clusterCall("getURL",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getArray(java.lang.String)\r
+ */\r
+ public Array getArray(String columnName) throws SQLException {\r
+ return (Array)clusterCall("getArray",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateArray(java.lang.String, java.sql.Array)\r
+ */\r
+ public void updateArray(String columnName, Array x) throws SQLException {\r
+ clusterCall("updateArray",new Object[]{columnName, x}, new Class[]{String.class, Array.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getBlob(java.lang.String)\r
+ */\r
+ public Blob getBlob(String columnName) throws SQLException {\r
+ return (Blob)clusterCall("getBlob",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateBlob(java.lang.String, java.sql.Blob)\r
+ */\r
+ public void updateBlob(String columnName, Blob x) throws SQLException {\r
+ clusterCall("updateBlob",new Object[]{columnName, x}, new Class[]{String.class, Blob.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getClob(java.lang.String)\r
+ */\r
+ public Clob getClob(String columnName) throws SQLException {\r
+ return (Clob)clusterCall("getClob",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateClob(java.lang.String, java.sql.Clob)\r
+ */\r
+ public void updateClob(String columnName, Clob x) throws SQLException {\r
+ clusterCall("updateClob",new Object[]{columnName, x}, new Class[]{String.class, Clob.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getDate(java.lang.String)\r
+ */\r
+ public Date getDate(String columnName) throws SQLException {\r
+ return (Date)clusterCall("getDate",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateDate(java.lang.String, java.sql.Date)\r
+ */\r
+ public void updateDate(String columnName, Date x) throws SQLException {\r
+ clusterCall("updateDate",new Object[]{columnName, x}, new Class[]{String.class, Date.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getDate(int, java.util.Calendar)\r
+ */\r
+ public Date getDate(int columnIndex, Calendar cal) throws SQLException {\r
+ return (Date)clusterCall("getDate",new Object[]{new Integer(columnIndex), cal}, new Class[]{String.class, Calendar.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getRef(java.lang.String)\r
+ */\r
+ public Ref getRef(String columnName) throws SQLException {\r
+ return (Ref)clusterCall("getRef",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateRef(java.lang.String, java.sql.Ref)\r
+ */\r
+ public void updateRef(String columnName, Ref x) throws SQLException {\r
+ clusterCall("updateRef",new Object[]{columnName, x}, new Class[]{String.class, Ref.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTime(java.lang.String)\r
+ */\r
+ public Time getTime(String columnName) throws SQLException {\r
+ return (Time)clusterCall("getTime",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateTime(java.lang.String, java.sql.Time)\r
+ */\r
+ public void updateTime(String columnName, Time x) throws SQLException {\r
+ clusterCall("updateTime",new Object[]{columnName, x}, new Class[]{String.class, Time.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTime(int, java.util.Calendar)\r
+ */\r
+ public Time getTime(int columnIndex, Calendar cal) throws SQLException {\r
+ return (Time)clusterCall("getTime",new Object[]{new Integer(columnIndex), cal}, new Class[]{String.class, Calendar.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTimestamp(java.lang.String)\r
+ */\r
+ public Timestamp getTimestamp(String columnName) throws SQLException {\r
+ return (Timestamp)clusterCall("getTimestamp",new Object[]{columnName}, new Class[]{String.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#updateTimestamp(java.lang.String, java.sql.Timestamp)\r
+ */\r
+ public void updateTimestamp(String columnName, Timestamp x)\r
+ throws SQLException {\r
+ clusterCall("updateTimestamp",new Object[]{columnName, x}, new Class[]{String.class, Timestamp.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTimestamp(int, java.util.Calendar)\r
+ */\r
+ public Timestamp getTimestamp(int columnIndex, Calendar cal)\r
+ throws SQLException {\r
+ return (Timestamp)clusterCall("getTimestamp",new Object[]{new Integer(columnIndex), cal}, new Class[]{Integer.TYPE, Calendar.class});\r
+ }\r
+\r
+ /**\r
+ * @throws SQLException\r
+ * @see java.sql.ResultSet#getObject(java.lang.String, java.util.Map)\r
+ */\r
+ //@Override\r
+ public Object getObject(String columnName, Map<String, Class<?>> map) throws SQLException{\r
+ return clusterCall("getObject",new Object[]{columnName, map}, new Class[]{String.class, Map.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getDate(java.lang.String, java.util.Calendar)\r
+ */\r
+ public Date getDate(String columnName, Calendar cal) throws SQLException {\r
+ return (Date)clusterCall("getDate",new Object[]{columnName, cal}, new Class[]{String.class, Calendar.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTime(java.lang.String, java.util.Calendar)\r
+ */\r
+ public Time getTime(String columnName, Calendar cal) throws SQLException {\r
+ return (Time)clusterCall("getTime",new Object[]{columnName, cal}, new Class[]{String.class, Calendar.class});\r
+ }\r
+\r
+ /**\r
+ * @see java.sql.ResultSet#getTimestamp(java.lang.String, java.util.Calendar)\r
+ */\r
+ public Timestamp getTimestamp(String columnName, Calendar cal)\r
+ throws SQLException {\r
+ return (Timestamp)clusterCall("getTimestamp",new Object[]{columnName, cal}, new Class[]{String.class, Calendar.class});\r
+ }\r
+\r
+ // ----\r
+ // 以下未実装\r
+ // ----\r
+\r
+ //@Override\r
+ public Reader getNCharacterStream(int arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public Reader getNCharacterStream(String arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public NClob getNClob(int arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public NClob getNClob(String arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public String getNString(int arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public String getNString(String arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public RowId getRowId(int arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public RowId getRowId(String arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public SQLXML getSQLXML(int arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public SQLXML getSQLXML(String arg0) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public boolean isClosed() throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return false;\r
+ }\r
+\r
+ //@Override\r
+ public void updateAsciiStream(int arg0, InputStream arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateAsciiStream(String arg0, InputStream arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateAsciiStream(int arg0, InputStream arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateAsciiStream(String arg0, InputStream arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBinaryStream(int arg0, InputStream arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBinaryStream(String arg0, InputStream arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBinaryStream(int arg0, InputStream arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBinaryStream(String arg0, InputStream arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBlob(int arg0, InputStream arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBlob(String arg0, InputStream arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBlob(int arg0, InputStream arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateBlob(String arg0, InputStream arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateCharacterStream(int arg0, Reader arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateCharacterStream(String arg0, Reader arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateCharacterStream(int arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateCharacterStream(String arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateClob(int arg0, Reader arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateClob(String arg0, Reader arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateClob(int arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateClob(String arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNCharacterStream(int arg0, Reader arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNCharacterStream(String arg0, Reader arg1)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNCharacterStream(int arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNCharacterStream(String arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNClob(int arg0, NClob arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNClob(String arg0, NClob arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNClob(int arg0, Reader arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNClob(String arg0, Reader arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNClob(int arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNClob(String arg0, Reader arg1, long arg2)\r
+ throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNString(int arg0, String arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateNString(String arg0, String arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateRowId(int arg0, RowId arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateRowId(String arg0, RowId arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateSQLXML(int arg0, SQLXML arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public void updateSQLXML(String arg0, SQLXML arg1) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+\r
+ }\r
+\r
+ //@Override\r
+ public boolean isWrapperFor(Class<?> iface) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return false;\r
+ }\r
+\r
+ //@Override\r
+ public <T> T unwrap(Class<T> iface) throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return null;\r
+ }\r
+\r
+ //@Override\r
+ public int getHoldability() throws SQLException {\r
+ // TODO 自動生成されたメソッド・スタブ\r
+ return 0;\r
+ }\r
+\r
+\r
+}\r