All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aceql.jdbc.commons.main.abstracts.AbstractPreparedStatement Maven / Gradle / Ivy

Go to download

The AceQL Java Client JDBC Driver allows to wrap the AceQL HTTP APIs and eliminates the tedious works of handling communications errors and parsing JSON results. Android and Java Desktop application developers can access remote SQL databases and/or SQL databases in the cloud by simply including standard JDBC calls in their code, just like they would for a local database.

The newest version!
/*
 * This file is part of AceQL JDBC Driver.
 * AceQL JDBC Driver: Remote JDBC access over HTTP with AceQL HTTP.
 * Copyright (c) 2023,  KawanSoft SAS
 * (http://www.kawansoft.com). All rights reserved.
 *
 * 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 com.aceql.jdbc.commons.main.abstracts;

import java.io.InputStream;
import java.io.Reader;
import java.math.BigDecimal;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.NClob;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.RowId;
import java.sql.SQLException;
import java.sql.SQLXML;
import java.sql.Statement;
import java.sql.Types;
import java.util.Calendar;

/**
 * PreparedStatement Wrapper. 
* Implements all the PreparedStatement methods. Usage is exactly the same as a * PreparedStatement. * */ public abstract class AbstractPreparedStatement extends AbstractStatement implements Statement, PreparedStatement { /** SQL JDBC PreparedStatement */ private PreparedStatement preparedStatement = null; /** Flag that says the caller is ConnectionHttp */ private boolean isConnectionHttp = false; /** * Constructor Needed for HTTP usage because there is no real JDBC * Connection */ public AbstractPreparedStatement() throws SQLException { isConnectionHttp = true; } /** * Will throw a SQL Exception if calling method is not authorized **/ private void verifyCallAuthorization(String methodName) throws SQLException { if (isConnectionHttp) { throw new SQLException( AbstractConnection.FEATURE_NOT_SUPPORTED_IN_THIS_VERSION + methodName); } } /** * Constructor * * @param preparedStatement * actual PreparedStatement in use to wrap */ public AbstractPreparedStatement(PreparedStatement preparedStatement) throws SQLException { super(preparedStatement); String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement = preparedStatement; } /** * Sets the designated parameter to SQL NULL. * *

* Note: You must specify the parameter's SQL type. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param sqlType * the SQL type code defined in java.sql.Types * @exception SQLException * if a database access error occurs */ @Override public void setNull(int parameterIndex, int sqlType) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setNull(parameterIndex, sqlType); } /** * Sets the designated parameter to the given Java boolean * value. The driver converts this to an SQL BIT value when it * sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setBoolean(int parameterIndex, boolean x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setBoolean(parameterIndex, x); } /** * Sets the designated parameter to the given Java byte value. * The driver converts this to an SQL TINYINT value when it * sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setByte(int parameterIndex, byte x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setByte(parameterIndex, x); } /** * Sets the designated parameter to the given Java short value. * The driver converts this to an SQL SMALLINT value when it * sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setShort(int parameterIndex, short x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setShort(parameterIndex, x); } /** * Sets the designated parameter to the given Java int value. * The driver converts this to an SQL INTEGER value when it * sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setInt(int parameterIndex, int x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setInt(parameterIndex, x); } /** * Sets the designated parameter to the given Java long value. * The driver converts this to an SQL BIGINT value when it * sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setLong(int parameterIndex, long x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setLong(parameterIndex, x); } /** * Sets the designated parameter to the given Java float value. * The driver converts this to an SQL FLOAT value when it sends * it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setFloat(int parameterIndex, float x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setFloat(parameterIndex, x); } /** * Sets the designated parameter to the given Java double * value. The driver converts this to an SQL DOUBLE value when * it sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setDouble(int parameterIndex, double x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setDouble(parameterIndex, x); } /** * Sets the designated parameter to the given * java.math.BigDecimal value. The driver converts this to an * SQL NUMERIC value when it sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setBigDecimal(parameterIndex, x); } /** * Sets the designated parameter to the given Java String * value. The driver converts this to an SQL VARCHAR or * LONGVARCHAR value (depending on the argument's size relative * to the driver's limits on VARCHAR values) when it sends it * to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setString(int parameterIndex, String x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setString(parameterIndex, x); } /** * Sets the designated parameter to the given Java array of bytes. The * driver converts this to an SQL VARBINARY or * LONGVARBINARY (depending on the argument's size relative to * the driver's limits on VARBINARY values) when it sends it to * the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setBytes(int parameterIndex, byte[] x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setBytes(parameterIndex, x); } /** * Sets the designated parameter to the given java.sql.Date * value. The driver converts this to an SQL DATE value when it * sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setDate(int parameterIndex, java.sql.Date x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setDate(parameterIndex, x); } /** * Sets the designated parameter to the given java.sql.Time * value. The driver converts this to an SQL TIME value when it * sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setTime(int parameterIndex, java.sql.Time x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setTime(parameterIndex, x); } /** * Sets the designated parameter to the given * java.sql.Timestamp value. The driver converts this to an SQL * TIMESTAMP value when it sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @exception SQLException * if a database access error occurs */ @Override public void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setTimestamp(parameterIndex, x); } /** * Sets the designated parameter to the given input stream, which will have * the specified number of bytes. When a very large ASCII value is input to * a LONGVARCHAR parameter, it may be more practical to send it * via a java.io.InputStream. Data will be read from the stream * as needed until end-of-file is reached. The JDBC driver will do any * necessary conversion from ASCII to the database char format. * *

* Note: This stream object can either be a standard Java stream * object or your own subclass that implements the standard interface. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the Java input stream that contains the ASCII parameter value * @param length * the number of bytes in the stream * @exception SQLException * if a database access error occurs */ @Override public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setAsciiStream(parameterIndex, x, length); } /** * Sets the designated parameter to the given input stream, which will have * the specified number of bytes. A Unicode character has two bytes, with * the first byte being the high byte, and the second being the low byte. * * When a very large Unicode value is input to a LONGVARCHAR * parameter, it may be more practical to send it via a * java.io.InputStream object. The data will be read from the * stream as needed until end-of-file is reached. The JDBC driver will do * any necessary conversion from Unicode to the database char format. * *

* Note: This stream object can either be a standard Java stream * object or your own subclass that implements the standard interface. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * a java.io.InputStream object that contains the * Unicode parameter value as two-byte Unicode characters * @param length * the number of bytes in the stream * @exception SQLException * if a database access error occurs * @deprecated */ @Deprecated @Override public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setUnicodeStream(parameterIndex, x, length); } /** * Sets the designated parameter to the given input stream, which will have * the specified number of bytes. When a very large binary value is input to * a LONGVARBINARY parameter, it may be more practical to send * it via a java.io.InputStream object. The data will be read * from the stream as needed until end-of-file is reached. * *

* Note: This stream object can either be a standard Java stream * object or your own subclass that implements the standard interface. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the java input stream which contains the binary parameter * value * @param length * the number of bytes in the stream * @exception SQLException * if a database access error occurs */ @Override public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setBinaryStream(parameterIndex, x, length); } /** * Clears the current parameter values immediately. *

* In general, parameter values remain in force for repeated use of a * statement. Setting a parameter value automatically clears its previous * value. However, in some cases it is useful to immediately release the * resources used by the current parameter values; this can be done by * calling the method clearParameters. * * @exception SQLException * if a database access error occurs */ @Override public void clearParameters() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.clearParameters(); } // ---------------------------------------------------------------------- // Advanced features: /** *

* Sets the value of the designated parameter with the given object. The * second argument must be an object type; for integral values, the * java.lang equivalent objects should be used. * *

* The given Java object will be converted to the given targetSqlType before * being sent to the database. * * If the object has a custom mapping (is of a class implementing the * interface SQLData), the JDBC driver should call the method * SQLData.writeSQL to write it to the SQL data stream. If, on * the other hand, the object is of a class implementing Ref, * Blob, Clob, Struct, or * Array, the driver should pass it to the database as a value * of the corresponding SQL type. * *

* Note that this method may be used to pass database-specific abstract data * types. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the object containing the input parameter value * @param targetSqlType * the SQL type (as defined in java.sql.Types) to be sent to the * database. The scale argument may further qualify this type. * @param scale * for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types, * this is the number of digits after the decimal point. For all * other types, this value will be ignored. * @exception SQLException * if a database access error occurs * @see Types */ @Override public void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setObject(parameterIndex, x, targetSqlType, scale); } /** * Sets the value of the designated parameter with the given object. This * method is like the method setObject above, except that it * assumes a scale of zero. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the object containing the input parameter value * @param targetSqlType * the SQL type (as defined in java.sql.Types) to be sent to the * database * @exception SQLException * if a database access error occurs */ @Override public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setObject(parameterIndex, x, targetSqlType); } /** *

* Sets the value of the designated parameter using the given object. The * second parameter must be of type Object; therefore, the * java.lang equivalent objects should be used for built-in * types. * *

* The JDBC specification specifies a standard mapping from Java * Object types to SQL types. The given argument will be * converted to the corresponding SQL type before being sent to the * database. * *

* Note that this method may be used to pass datatabase- specific abstract * data types, by using a driver-specific Java type. * * If the object is of a class implementing the interface * SQLData, the JDBC driver should call the method * SQLData.writeSQL to write it to the SQL data stream. If, on * the other hand, the object is of a class implementing Ref, * Blob, Clob, Struct, or * Array, the driver should pass it to the database as a value * of the corresponding SQL type. *

* This method throws an exception if there is an ambiguity, for example, if * the object is of a class implementing more than one of the interfaces * named above. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the object containing the input parameter value * @exception SQLException * if a database access error occurs or the type of the given * object is ambiguous */ @Override public void setObject(int parameterIndex, Object x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setObject(parameterIndex, x); } /** * Executes the SQL statement in this PreparedStatement object, * which may be any kind of SQL statement. Some prepared statements return * multiple results; the execute method handles these complex * statements as well as the simpler form of statements handled by the * methods executeQuery and executeUpdate. *

* The execute method returns a boolean to * indicate the form of the first result. You must call either the method * getResultSet or getUpdateCount to retrieve the * result; you must call getMoreResults to move to any * subsequent result(s). * * @return true if the first result is a ResultSet * object; false if the first result is an update count * or there is no result * @exception SQLException * if a database access error occurs or an argument is * supplied to this method * @see Statement#execute * @see Statement#getResultSet * @see Statement#getUpdateCount * @see Statement#getMoreResults */ @Override public boolean execute() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return this.preparedStatement.execute(); } // --------------------------JDBC 2.0----------------------------- /** * Adds a set of parameters to this PreparedStatement object's * batch of commands. * * @exception SQLException * if a database access error occurs * @see Statement#addBatch * @since 1.2 */ @Override public void addBatch() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.addBatch(); } /** * Sets the designated parameter to the given Reader object, * which is the given number of characters long. When a very large UNICODE * value is input to a LONGVARCHAR parameter, it may be more * practical to send it via a java.io.Reader object. The data * will be read from the stream as needed until end-of-file is reached. The * JDBC driver will do any necessary conversion from UNICODE to the database * char format. * *

* Note: This stream object can either be a standard Java stream * object or your own subclass that implements the standard interface. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param reader * the java.io.Reader object that contains the * Unicode data * @param length * the number of characters in the stream * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setCharacterStream(parameterIndex, reader, length); } /** * Sets the designated parameter to the given * REF(<structured-type>) value. The driver converts this * to an SQL REF value when it sends it to the database. * * @param iParam * the first parameter is 1, the second is 2, ... * @param x * an SQL REF value * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setRef(int iParam, Ref x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setRef(iParam, x); } /** * Sets the designated parameter to the given Blob object. The * driver converts this to an SQL BLOB value when it sends it * to the database. * * @param iParam * the first parameter is 1, the second is 2, ... * @param x * a Blob object that maps an SQL BLOB * value * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setBlob(int iParam, Blob x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setBlob(iParam, x); } /** * Sets the designated parameter to the given Clob object. The * driver converts this to an SQL CLOB value when it sends it * to the database. * * @param iParam * the first parameter is 1, the second is 2, ... * @param x * a Clob object that maps an SQL CLOB * value * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setClob(int iParam, Clob x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setClob(iParam, x); } /** * Sets the designated parameter to the given Array object. The * driver converts this to an SQL ARRAY value when it sends it * to the database. * * @param iParam * the first parameter is 1, the second is 2, ... * @param x * an Array object that maps an SQL * ARRAY value * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setArray(int iParam, Array x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setArray(iParam, x); } /** * Retrieves a AceQLResultSetMetaData object that contains * information about the columns of the ResultSet object that * will be returned when this PreparedStatement object is * executed. *

* Because a PreparedStatement object is precompiled, it is * possible to know about the ResultSet object that it will * return without having to execute it. Consequently, it is possible to * invoke the method getMetaData on a * PreparedStatement object rather than waiting to execute it * and then invoking the ResultSet.getMetaData method on the * ResultSet object that is returned. *

* NOTE: Using this method may be expensive for some drivers due to * the lack of underlying DBMS support. * * @return the description of a ResultSet object's columns or * null if the driver cannot return a * AceQLResultSetMetaData object * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public ResultSetMetaData getMetaData() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return this.preparedStatement.getMetaData(); } /** * Sets the designated parameter to the given java.sql.Date * value, using the given Calendar object. The driver uses the * Calendar object to construct an SQL DATE value, * which the driver then sends to the database. With a a * Calendar object, the driver can calculate the date taking * into account a custom timezone. If no Calendar object is * specified, the driver uses the default timezone, which is that of the * virtual machine running the application. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @param cal * the Calendar object the driver will use to * construct the date * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setDate(int parameterIndex, java.sql.Date x, Calendar cal) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setDate(parameterIndex, x, cal); } /** * Sets the designated parameter to the given java.sql.Time * value, using the given Calendar object. The driver uses the * Calendar object to construct an SQL TIME value, * which the driver then sends to the database. With a a * Calendar object, the driver can calculate the time taking * into account a custom timezone. If no Calendar object is * specified, the driver uses the default timezone, which is that of the * virtual machine running the application. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @param cal * the Calendar object the driver will use to * construct the time * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setTime(int parameterIndex, java.sql.Time x, Calendar cal) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setTime(parameterIndex, x, cal); } /** * Sets the designated parameter to the given * java.sql.Timestamp value, using the given * Calendar object. The driver uses the Calendar * object to construct an SQL TIMESTAMP value, which the driver * then sends to the database. With a Calendar object, the * driver can calculate the timestamp taking into account a custom timezone. * If no Calendar object is specified, the driver uses the * default timezone, which is that of the virtual machine running the * application. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the parameter value * @param cal * the Calendar object the driver will use to * construct the timestamp * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setTimestamp(int parameterIndex, java.sql.Timestamp x, Calendar cal) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setTimestamp(parameterIndex, x, cal); } /** * Sets the designated parameter to SQL NULL. This version of * the method setNull should be used for user-defined types and * REF type parameters. Examples of user-defined types include: STRUCT, * DISTINCT, JAVA_OBJECT, and named array types. * *

* Note: To be portable, applications must give the SQL type code and * the fully-qualified SQL type name when specifying a NULL user-defined or * REF parameter. In the case of a user-defined type the name is the type * name of the parameter itself. For a REF parameter, the name is the type * name of the referenced type. If a JDBC driver does not need the type code * or type name information, it may ignore it. * * Although it is intended for user-defined and Ref parameters, this method * may be used to set a null parameter of any JDBC type. If the parameter * does not have a user-defined or REF type, the given typeName is ignored. * * * @param paramIndex * the first parameter is 1, the second is 2, ... * @param sqlType * a value from java.sql.Types * @param typeName * the fully-qualified name of an SQL user-defined type; ignored * if the parameter is not a user-defined type or REF * @exception SQLException * if a database access error occurs * @since 1.2 */ @Override public void setNull(int paramIndex, int sqlType, String typeName) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setNull(paramIndex, sqlType, typeName); } // ------------------------- JDBC 3.0 ----------------------------------- /** * Sets the designated parameter to the given java.net.URL * value. The driver converts this to an SQL DATALINK value * when it sends it to the database. * * @param parameterIndex * the first parameter is 1, the second is 2, ... * @param x * the java.net.URL object to be set * @exception SQLException * if a database access error occurs * @since 1.4 */ @Override public void setURL(int parameterIndex, java.net.URL x) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); this.preparedStatement.setURL(parameterIndex, x); } /** * Retrieves the number, types and properties of this * PreparedStatement object's parameters. * * @return a ParameterMetaData object that contains information * about the number, types and properties of this * PreparedStatement object's parameters * @exception SQLException * if a database access error occurs * @see ParameterMetaData * @since 1.4 */ @Override public ParameterMetaData getParameterMetaData() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return this.preparedStatement.getParameterMetaData(); } /** * @param arg0 * @return * @throws SQLException * @see java.sql.Wrapper#isWrapperFor(java.lang.Class) */ @Override public boolean isWrapperFor(Class arg0) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return preparedStatement.isWrapperFor(arg0); } /** * @param arg0 * @param arg1 * @param arg2 * @throws SQLException * @see java.sql.PreparedStatement#setAsciiStream(int, java.io.InputStream, * long) */ @Override public void setAsciiStream(int arg0, InputStream arg1, long arg2) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setAsciiStream(arg0, arg1, arg2); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setAsciiStream(int, java.io.InputStream) */ @Override public void setAsciiStream(int arg0, InputStream arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setAsciiStream(arg0, arg1); } /** * @param arg0 * @param arg1 * @param arg2 * @throws SQLException * @see java.sql.PreparedStatement#setBinaryStream(int, java.io.InputStream, * long) */ @Override public void setBinaryStream(int arg0, InputStream arg1, long arg2) throws SQLException { preparedStatement.setBinaryStream(arg0, arg1, arg2); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setBinaryStream(int, java.io.InputStream) */ @Override public void setBinaryStream(int arg0, InputStream arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setBinaryStream(arg0, arg1); } /** * @param arg0 * @param arg1 * @param arg2 * @throws SQLException * @see java.sql.PreparedStatement#setBlob(int, java.io.InputStream, long) */ @Override public void setBlob(int arg0, InputStream arg1, long arg2) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setBlob(arg0, arg1, arg2); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setBlob(int, java.io.InputStream) */ @Override public void setBlob(int arg0, InputStream arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setBlob(arg0, arg1); } /** * @param arg0 * @param arg1 * @param arg2 * @throws SQLException * @see java.sql.PreparedStatement#setCharacterStream(int, java.io.Reader, * long) */ @Override public void setCharacterStream(int arg0, Reader arg1, long arg2) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setCharacterStream(arg0, arg1, arg2); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setCharacterStream(int, java.io.Reader) */ @Override public void setCharacterStream(int arg0, Reader arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setCharacterStream(arg0, arg1); } /** * @param arg0 * @param arg1 * @param arg2 * @throws SQLException * @see java.sql.PreparedStatement#setClob(int, java.io.Reader, long) */ @Override public void setClob(int arg0, Reader arg1, long arg2) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setClob(arg0, arg1, arg2); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setClob(int, java.io.Reader) */ @Override public void setClob(int arg0, Reader arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setClob(arg0, arg1); } /** * @param arg0 * @param arg1 * @param arg2 * @throws SQLException * @see java.sql.PreparedStatement#setNCharacterStream(int, java.io.Reader, * long) */ @Override public void setNCharacterStream(int arg0, Reader arg1, long arg2) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setNCharacterStream(arg0, arg1, arg2); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setNCharacterStream(int, java.io.Reader) */ @Override public void setNCharacterStream(int arg0, Reader arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setNCharacterStream(arg0, arg1); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setNClob(int, java.sql.NClob) */ @Override public void setNClob(int arg0, NClob arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setNClob(arg0, arg1); } /** * @param arg0 * @param arg1 * @param arg2 * @throws SQLException * @see java.sql.PreparedStatement#setNClob(int, java.io.Reader, long) */ @Override public void setNClob(int arg0, Reader arg1, long arg2) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setNClob(arg0, arg1, arg2); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setNClob(int, java.io.Reader) */ @Override public void setNClob(int arg0, Reader arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setNClob(arg0, arg1); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setNString(int, java.lang.String) */ @Override public void setNString(int arg0, String arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setNString(arg0, arg1); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setRowId(int, java.sql.RowId) */ @Override public void setRowId(int arg0, RowId arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setRowId(arg0, arg1); } /** * @param arg0 * @param arg1 * @throws SQLException * @see java.sql.PreparedStatement#setSQLXML(int, java.sql.SQLXML) */ @Override public void setSQLXML(int arg0, SQLXML arg1) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); preparedStatement.setSQLXML(arg0, arg1); } /** * @param * @param arg0 * @return * @throws SQLException * @see java.sql.Wrapper#unwrap(java.lang.Class) */ @Override public T unwrap(Class arg0) throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return preparedStatement.unwrap(arg0); } /////////////////////////////////////////////////////////// // JAVA 7 METHOD EMULATION // /////////////////////////////////////////////////////////// // @Override do not override for Java 6 compatibility @Override public ResultSet executeQuery() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return null; } // @Override do not override for Java 6 compatibility @Override public int executeUpdate() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return 0; } // @Override do not override for Java 6 compatibility @Override public void closeOnCompletion() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); } // @Override do not override for Java 6 compatibility @Override public boolean isCloseOnCompletion() throws SQLException { String methodName = new Object() { }.getClass().getEnclosingMethod().getName(); verifyCallAuthorization(methodName); return false; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy