OSDN Git Service

test
[luz/luz.git] / luz2 / src / com / lavans / luz2 / sql / logging / LoggingStatement.java
1 /*\r
2  * $Id: LoggingStatement.java 413 2011-07-28 23:05:11Z dobashi $\r
3  * create: 2004/07/27\r
4  * (c)2004 Lavans Networks Inc. All Rights Reserved.\r
5  */\r
6 package com.lavans.luz2.sql.logging;\r
7 \r
8 import java.sql.Connection;\r
9 import java.sql.ResultSet;\r
10 import java.sql.SQLException;\r
11 import java.sql.SQLWarning;\r
12 import java.sql.Statement;\r
13 \r
14 import org.apache.commons.logging.Log;\r
15 import org.apache.commons.logging.LogFactory;\r
16 \r
17 import com.lavans.luz2.util.MethodUtil;\r
18 \r
19 /**\r
20  * @author dobashi\r
21  * @version 1.00\r
22  */\r
23 public class LoggingStatement implements Statement {\r
24         /** 処理移譲先。 */\r
25         private Statement st=null;\r
26 \r
27         /** 自クラス名。使うたびにgetName()すると遅くなるのでここで定義しておく。 */\r
28         private static final String CLASSNAME=LoggingStatement.class.getName();\r
29 \r
30         /** ロガー */\r
31         private static Log logger = LogFactory.getLog(LoggingStatement.class);\r
32 \r
33         /** ログ出力先変更。 */\r
34 //      public void setLogger(Log value){\r
35 //              logger = value;\r
36 //      }\r
37 \r
38         /**\r
39          * コンストラクタ。\r
40          * @param st\r
41          */\r
42         public LoggingStatement(Statement st){\r
43                 this.st = st;\r
44         }\r
45 \r
46         /**\r
47          * コンストラクタ。\r
48          * BindStatementを"implements PreparedStatement"ではなく\r
49          * "extends LoggerPreparedStatement"にするための回避策として、\r
50          * 引数無しのコンストラクタをprotectedで用意する。\r
51          */\r
52 //      protected LoggingStatement(){\r
53 //      }\r
54 \r
55         /**\r
56          * @see java.sql.Statement#executeQuery(java.lang.String)\r
57          */\r
58         public ResultSet executeQuery(String sql) throws SQLException {\r
59                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
60                 return st.executeQuery(sql);\r
61         }\r
62 \r
63         /**\r
64          * @see java.sql.Statement#executeUpdate(java.lang.String)\r
65          */\r
66         public int executeUpdate(String sql) throws SQLException {\r
67                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
68                 return st.executeUpdate(sql);\r
69         }\r
70 \r
71 \r
72         /**\r
73          * @see java.sql.Statement#executeUpdate(java.lang.String, int)\r
74          */\r
75         public int executeUpdate(String sql, int autoGeneratedKeys)\r
76                 throws SQLException {\r
77                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
78                 return st.executeUpdate(sql,autoGeneratedKeys);\r
79         }\r
80 \r
81         /**\r
82          * @see java.sql.Statement#executeUpdate(java.lang.String, int[])\r
83          */\r
84         public int executeUpdate(String sql, int[] columnIndexes)\r
85                 throws SQLException {\r
86                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
87                 return st.executeUpdate(sql,columnIndexes);\r
88         }\r
89 \r
90         /**\r
91          * @see java.sql.Statement#executeUpdate(java.lang.String, java.lang.String[])\r
92          */\r
93         public int executeUpdate(String sql, String[] columnNames)\r
94                 throws SQLException {\r
95                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
96                 return st.executeUpdate(sql,columnNames);\r
97         }\r
98 \r
99         /**\r
100          * @see java.sql.Statement#execute(java.lang.String, int)\r
101          */\r
102         public boolean execute(String sql, int autoGeneratedKeys)\r
103                 throws SQLException {\r
104                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
105                 return st.execute(sql,autoGeneratedKeys);\r
106         }\r
107 \r
108         /**\r
109          * @see java.sql.Statement#execute(java.lang.String)\r
110          */\r
111         public boolean execute(String sql) throws SQLException {\r
112                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
113                 return st.execute(sql);\r
114         }\r
115 \r
116         /**\r
117          * @see java.sql.Statement#execute(java.lang.String, int[])\r
118          */\r
119         public boolean execute(String sql, int[] columnIndexes)\r
120                 throws SQLException {\r
121                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
122                 return st.execute(sql,columnIndexes);\r
123         }\r
124 \r
125         /**\r
126          * @see java.sql.Statement#execute(java.lang.String, java.lang.String[])\r
127          */\r
128         public boolean execute(String sql, String[] columnNames)\r
129                 throws SQLException {\r
130                 logger.info(MethodUtil.getMethodName(CLASSNAME) +"\n"+sql);\r
131                 return st.execute(sql,columnNames);\r
132         }\r
133 \r
134 \r
135 \r
136 \r
137 \r
138         /* (非 Javadoc)\r
139          * @see java.sql.Statement#getFetchDirection()\r
140          */\r
141         public int getFetchDirection() throws SQLException {\r
142                 return st.getFetchDirection();\r
143         }\r
144 \r
145         /* (非 Javadoc)\r
146          * @see java.sql.Statement#getFetchSize()\r
147          */\r
148         public int getFetchSize() throws SQLException {\r
149                 return st.getFetchSize();\r
150         }\r
151 \r
152         /* (非 Javadoc)\r
153          * @see java.sql.Statement#getMaxFieldSize()\r
154          */\r
155         public int getMaxFieldSize() throws SQLException {\r
156                 return st.getMaxFieldSize();\r
157         }\r
158 \r
159         /* (非 Javadoc)\r
160          * @see java.sql.Statement#getMaxRows()\r
161          */\r
162         public int getMaxRows() throws SQLException {\r
163                 return st.getMaxRows();\r
164         }\r
165 \r
166         /* (非 Javadoc)\r
167          * @see java.sql.Statement#getQueryTimeout()\r
168          */\r
169         public int getQueryTimeout() throws SQLException {\r
170                 return st.getQueryTimeout();\r
171         }\r
172 \r
173         /* (非 Javadoc)\r
174          * @see java.sql.Statement#getResultSetConcurrency()\r
175          */\r
176         public int getResultSetConcurrency() throws SQLException {\r
177                 return st.getResultSetConcurrency();\r
178         }\r
179 \r
180         /* (非 Javadoc)\r
181          * @see java.sql.Statement#getResultSetHoldability()\r
182          */\r
183         public int getResultSetHoldability() throws SQLException {\r
184                 return st.getResultSetHoldability();\r
185         }\r
186 \r
187         /* (非 Javadoc)\r
188          * @see java.sql.Statement#getResultSetType()\r
189          */\r
190         public int getResultSetType() throws SQLException {\r
191                 return st.getResultSetType();\r
192         }\r
193 \r
194         /* (非 Javadoc)\r
195          * @see java.sql.Statement#getUpdateCount()\r
196          */\r
197         public int getUpdateCount() throws SQLException {\r
198                 return st.getUpdateCount();\r
199         }\r
200 \r
201         /* (非 Javadoc)\r
202          * @see java.sql.Statement#cancel()\r
203          */\r
204         public void cancel() throws SQLException {\r
205                 st.cancel();\r
206         }\r
207 \r
208         /* (非 Javadoc)\r
209          * @see java.sql.Statement#clearBatch()\r
210          */\r
211         public void clearBatch() throws SQLException {\r
212                 st.clearBatch();\r
213         }\r
214 \r
215         /* (非 Javadoc)\r
216          * @see java.sql.Statement#clearWarnings()\r
217          */\r
218         public void clearWarnings() throws SQLException {\r
219                 st.clearWarnings();\r
220         }\r
221 \r
222         /* (非 Javadoc)\r
223          * @see java.sql.Statement#close()\r
224          */\r
225         public void close() throws SQLException {\r
226                 st.close();\r
227         }\r
228 \r
229         /* (非 Javadoc)\r
230          * @see java.sql.Statement#getMoreResults()\r
231          */\r
232         public boolean getMoreResults() throws SQLException {\r
233                 return st.getMoreResults();\r
234         }\r
235 \r
236         /* (非 Javadoc)\r
237          * @see java.sql.Statement#executeBatch()\r
238          */\r
239         public int[] executeBatch() throws SQLException {\r
240                 return st.executeBatch();\r
241         }\r
242 \r
243         /* (非 Javadoc)\r
244          * @see java.sql.Statement#setFetchDirection(int)\r
245          */\r
246         public void setFetchDirection(int direction) throws SQLException {\r
247                 st.setFetchDirection(direction);\r
248         }\r
249 \r
250         /* (非 Javadoc)\r
251          * @see java.sql.Statement#setFetchSize(int)\r
252          */\r
253         public void setFetchSize(int rows) throws SQLException {\r
254                 st.setFetchSize(rows);\r
255         }\r
256 \r
257         /* (非 Javadoc)\r
258          * @see java.sql.Statement#setMaxFieldSize(int)\r
259          */\r
260         public void setMaxFieldSize(int max) throws SQLException {\r
261                 st.setMaxFieldSize(max);\r
262         }\r
263 \r
264         /* (非 Javadoc)\r
265          * @see java.sql.Statement#setMaxRows(int)\r
266          */\r
267         public void setMaxRows(int max) throws SQLException {\r
268                 st.setMaxRows(max);\r
269         }\r
270 \r
271         /* (非 Javadoc)\r
272          * @see java.sql.Statement#setQueryTimeout(int)\r
273          */\r
274         public void setQueryTimeout(int seconds) throws SQLException {\r
275                 st.setQueryTimeout(seconds);\r
276         }\r
277 \r
278         /* (非 Javadoc)\r
279          * @see java.sql.Statement#getMoreResults(int)\r
280          */\r
281         public boolean getMoreResults(int current) throws SQLException {\r
282                 return st.getMoreResults(current);\r
283         }\r
284 \r
285         /* (非 Javadoc)\r
286          * @see java.sql.Statement#setEscapeProcessing(boolean)\r
287          */\r
288         public void setEscapeProcessing(boolean enable) throws SQLException {\r
289                 st.setEscapeProcessing(enable);\r
290         }\r
291 \r
292 \r
293         /* (非 Javadoc)\r
294          * @see java.sql.Statement#addBatch(java.lang.String)\r
295          */\r
296         public void addBatch(String sql) throws SQLException {\r
297                 st.addBatch(sql);\r
298         }\r
299 \r
300         /* (非 Javadoc)\r
301          * @see java.sql.Statement#setCursorName(java.lang.String)\r
302          */\r
303         public void setCursorName(String name) throws SQLException {\r
304                 st.setCursorName(name);\r
305         }\r
306 \r
307 \r
308         /* (非 Javadoc)\r
309          * @see java.sql.Statement#getConnection()\r
310          */\r
311         public Connection getConnection() throws SQLException {\r
312                 return st.getConnection();\r
313         }\r
314 \r
315         /* (非 Javadoc)\r
316          * @see java.sql.Statement#getGeneratedKeys()\r
317          */\r
318         public ResultSet getGeneratedKeys() throws SQLException {\r
319                 return st.getGeneratedKeys();\r
320         }\r
321 \r
322         /* (非 Javadoc)\r
323          * @see java.sql.Statement#getResultSet()\r
324          */\r
325         public ResultSet getResultSet() throws SQLException {\r
326                 return st.getResultSet();\r
327         }\r
328 \r
329         /* (非 Javadoc)\r
330          * @see java.sql.Statement#getWarnings()\r
331          */\r
332         public SQLWarning getWarnings() throws SQLException {\r
333                 return st.getWarnings();\r
334         }\r
335         /**\r
336          * @return\r
337          * @throws SQLException\r
338          * @see java.sql.Statement#isClosed()\r
339          */\r
340         public boolean isClosed() throws SQLException {\r
341                 return st.isClosed();\r
342         }\r
343 \r
344         /**\r
345          * @return\r
346          * @throws SQLException\r
347          * @see java.sql.Statement#isPoolable()\r
348          */\r
349         public boolean isPoolable() throws SQLException {\r
350                 return st.isPoolable();\r
351         }\r
352 \r
353         /**\r
354          * @param iface\r
355          * @return\r
356          * @throws SQLException\r
357          * @see java.sql.Wrapper#isWrapperFor(java.lang.Class)\r
358          */\r
359         public boolean isWrapperFor(Class<?> iface) throws SQLException {\r
360                 return st.isWrapperFor(iface);\r
361         }\r
362 \r
363         /**\r
364          * @param poolable\r
365          * @throws SQLException\r
366          * @see java.sql.Statement#setPoolable(boolean)\r
367          */\r
368         public void setPoolable(boolean poolable) throws SQLException {\r
369                 st.setPoolable(poolable);\r
370         }\r
371 \r
372         /**\r
373          * @param <T>\r
374          * @param iface\r
375          * @return\r
376          * @throws SQLException\r
377          * @see java.sql.Wrapper#unwrap(java.lang.Class)\r
378          */\r
379         @SuppressWarnings("unchecked")\r
380         public <T> T unwrap(Class<T> iface) throws SQLException {\r
381                 return (T)this;\r
382         }\r
383 \r
384         @Override\r
385         public void closeOnCompletion() throws SQLException {\r
386                 // TODO 自動生成されたメソッド・スタブ\r
387                 \r
388         }\r
389 \r
390         @Override\r
391         public boolean isCloseOnCompletion() throws SQLException {\r
392                 // TODO 自動生成されたメソッド・スタブ\r
393                 return false;\r
394         }\r
395 }\r