/* * Copyright 2015 the original author or authors. * @https://github.com/scouter-project/scouter * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package scouter.jdbc; import scouter.agent.trace.SqlParameter; import scouter.agent.trace.TraceSQL; import scouter.lang.step.SqlXType; import java.sql.ResultSet; import java.sql.SQLException; public class WrPreparedStatement extends WrStatement implements java.sql.PreparedStatement { java.sql.PreparedStatement inner; SqlParameter sql = new SqlParameter(); public WrPreparedStatement(java.sql.PreparedStatement inner, String sql) { super(inner); this.inner = inner; this.sql.setSql(sql); } final public void setBoolean(int a0, boolean a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setBoolean(a0, a1); } final public void setByte(int a0, byte a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setByte(a0, a1); } final public void setShort(int a0, short a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setShort(a0, a1); } final public void setInt(int a0, int a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setInt(a0, a1); } final public void setLong(int a0, long a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setLong(a0, a1); } final public void setFloat(int a0, float a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setFloat(a0, a1); } final public void setDouble(int a0, double a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setDouble(a0, a1); } final public void setTimestamp(int a0, java.sql.Timestamp a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setTimestamp(a0, a1); } final public void setTimestamp(int a0, java.sql.Timestamp a1, java.util.Calendar a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setTimestamp(a0, a1, a2); } final public void setURL(int a0, java.net.URL a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setURL(a0, a1); } final public void setTime(int a0, java.sql.Time a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setTime(a0, a1); } final public void setTime(int a0, java.sql.Time a1, java.util.Calendar a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setTime(a0, a1, a2); } final public boolean execute() throws java.sql.SQLException { Object stat = TraceSQL.start(this, sql, SqlXType.METHOD_EXECUTE); try { boolean b = this.inner.execute(); TraceSQL.end(stat, null, TraceSQL.toInt(b)); return b; } catch (SQLException ex) { TraceSQL.end(stat, ex, -3); throw ex; } catch (Throwable t) { TraceSQL.end(stat, t, -3); throw new SQLException(t); } } final public java.sql.ResultSet executeQuery() throws java.sql.SQLException { Object stat = TraceSQL.start(this, sql, SqlXType.METHOD_QUERY); try { ResultSet rs = this.inner.executeQuery(); TraceSQL.end(stat, null, -1); return new WrResultSet(rs); } catch (SQLException ex) { TraceSQL.end(stat, ex, -3); throw ex; } catch (Throwable t) { TraceSQL.end(stat, t, -3); throw new SQLException(t); } } final public int executeUpdate() throws java.sql.SQLException { Object stat = TraceSQL.start(this, sql, SqlXType.METHOD_UPDATE); try { int n = this.inner.executeUpdate(); TraceSQL.end(stat, null, n); return n; } catch (SQLException ex) { TraceSQL.end(stat, ex, -3); throw ex; } catch (Throwable t) { TraceSQL.end(stat, t, -3); throw new SQLException(t); } } final public void setNull(int a0, int a1, java.lang.String a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setNull(a0, a1, a2); } final public void setNull(int a0, int a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, null); this.inner.setNull(a0, a1); } final public void setBigDecimal(int a0, java.math.BigDecimal a1) throws java.sql.SQLException { this.inner.setBigDecimal(a0, a1); } final public void setString(int a0, java.lang.String a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setString(a0, a1); } final public void setBytes(int a0, byte[] a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[bytes]"); this.inner.setBytes(a0, a1); } final public void setDate(int a0, java.sql.Date a1, java.util.Calendar a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setDate(a0, a1, a2); } final public void setDate(int a0, java.sql.Date a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setDate(a0, a1); } final public void setAsciiStream(int a0, java.io.InputStream a1, int a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[asiistream]"); this.inner.setAsciiStream(a0, a1, a2); } final public void setAsciiStream(int a0, java.io.InputStream a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[asciistream]"); this.inner.setAsciiStream(a0, a1); } final public void setAsciiStream(int a0, java.io.InputStream a1, long a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[asciistream]"); this.inner.setAsciiStream(a0, a1, a2); } final public void setUnicodeStream(int a0, java.io.InputStream a1, int a2) throws java.sql.SQLException { this.inner.setUnicodeStream(a0, a1, a2); } final public void setBinaryStream(int a0, java.io.InputStream a1, int a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[binstream]"); this.inner.setBinaryStream(a0, a1, a2); } final public void setBinaryStream(int a0, java.io.InputStream a1, long a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[binstream]"); this.inner.setBinaryStream(a0, a1, a2); } final public void setBinaryStream(int a0, java.io.InputStream a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[binstream]"); this.inner.setBinaryStream(a0, a1); } final public void clearParameters() throws java.sql.SQLException { this.sql.clear(); this.inner.clearParameters(); } final public void setObject(int a0, java.lang.Object a1, int a2, int a3) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setObject(a0, a1, a2, a3); } final public void setObject(int a0, java.lang.Object a1, int a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setObject(a0, a1, a2); } final public void setObject(int a0, java.lang.Object a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, a1); this.inner.setObject(a0, a1); } final public void addBatch() throws java.sql.SQLException { this.inner.addBatch(); } final public void setCharacterStream(int a0, java.io.Reader a1, long a2) throws java.sql.SQLException { this.inner.setCharacterStream(a0, a1, a2); } final public void setCharacterStream(int a0, java.io.Reader a1, int a2) throws java.sql.SQLException { this.inner.setCharacterStream(a0, a1, a2); } final public void setCharacterStream(int a0, java.io.Reader a1) throws java.sql.SQLException { this.inner.setCharacterStream(a0, a1); } final public void setRef(int a0, java.sql.Ref a1) throws java.sql.SQLException { this.inner.setRef(a0, a1); } final public void setBlob(int a0, java.io.InputStream a1, long a2) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[blob]"); this.inner.setBlob(a0, a1, a2); } final public void setBlob(int a0, java.io.InputStream a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[blob]"); this.inner.setBlob(a0, a1); } final public void setBlob(int a0, java.sql.Blob a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[blob]"); this.inner.setBlob(a0, a1); } final public void setClob(int a0, java.io.Reader a1) throws java.sql.SQLException { this.inner.setClob(a0, a1); } final public void setClob(int a0, java.sql.Clob a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[clob]"); this.inner.setClob(a0, a1); } final public void setClob(int a0, java.io.Reader a1, long a2) throws java.sql.SQLException { this.inner.setClob(a0, a1, a2); } final public void setArray(int a0, java.sql.Array a1) throws java.sql.SQLException { TraceSQL.set(sql, a0, "[array]"); this.inner.setArray(a0, a1); } final public java.sql.ResultSetMetaData getMetaData() throws java.sql.SQLException { return this.inner.getMetaData(); } final public java.sql.ParameterMetaData getParameterMetaData() throws java.sql.SQLException { return this.inner.getParameterMetaData(); } final public void setRowId(int a0, java.sql.RowId a1) throws java.sql.SQLException { this.inner.setRowId(a0, a1); } final public void setNString(int a0, java.lang.String a1) throws java.sql.SQLException { this.inner.setNString(a0, a1); } final public void setNCharacterStream(int a0, java.io.Reader a1) throws java.sql.SQLException { this.inner.setNCharacterStream(a0, a1); } final public void setNCharacterStream(int a0, java.io.Reader a1, long a2) throws java.sql.SQLException { this.inner.setNCharacterStream(a0, a1, a2); } final public void setNClob(int a0, java.io.Reader a1) throws java.sql.SQLException { this.inner.setNClob(a0, a1); } final public void setNClob(int a0, java.io.Reader a1, long a2) throws java.sql.SQLException { this.inner.setNClob(a0, a1, a2); } final public void setNClob(int a0, java.sql.NClob a1) throws java.sql.SQLException { this.inner.setNClob(a0, a1); } final public void setSQLXML(int a0, java.sql.SQLXML a1) throws java.sql.SQLException { this.inner.setSQLXML(a0, a1); } }