org.tarantool.jdbc.SQLPreparedStatement Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of connector Show documentation
Show all versions of connector Show documentation
Tarantool client for java
package org.tarantool.jdbc;
import java.io.InputStream;
import java.io.Reader;
import java.math.BigDecimal;
import java.net.URL;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Date;
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.SQLFeatureNotSupportedException;
import java.sql.SQLXML;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
public class SQLPreparedStatement extends SQLStatement implements PreparedStatement {
final static String INVALID_CALL_MSG = "The method cannot be called on a PreparedStatement.";
final String sql;
final Map params;
public SQLPreparedStatement(SQLConnection connection, String sql) {
super(connection);
this.sql = sql;
this.params = new HashMap();
}
@Override
public ResultSet executeQuery() throws SQLException {
discardLastResults();
return connection.executeQuery(sql, getParams());
}
protected Object[] getParams() throws SQLException {
Object[] objects = new Object[params.size()];
for (int i = 1; i <= params.size(); i++) {
if (params.containsKey(i)) {
objects[i - 1] = params.get(i);
} else {
throw new SQLException("Parameter " + i + " is missing");
}
}
return objects;
}
@Override
public int executeUpdate() throws SQLException {
discardLastResults();
return connection.executeUpdate(sql, getParams());
}
@Override
public void setNull(int parameterIndex, int sqlType) throws SQLException {
params.put(parameterIndex, null);
}
@Override
public void setBoolean(int parameterIndex, boolean x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setByte(int parameterIndex, byte x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setShort(int parameterIndex, short x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setInt(int parameterIndex, int x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setLong(int parameterIndex, long x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setFloat(int parameterIndex, float x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setDouble(int parameterIndex, double x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setString(int parameterIndex, String x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setBytes(int parameterIndex, byte[] x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setDate(int parameterIndex, Date x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setTime(int parameterIndex, Time x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void clearParameters() throws SQLException {
params.clear();
}
@Override
public void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setObject(int parameterIndex, Object x) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public boolean execute() throws SQLException {
discardLastResults();
return handleResult(connection.execute(sql, getParams()));
}
@Override
public void setCharacterStream(int parameterIndex, Reader reader, int length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setRef(int parameterIndex, Ref x) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setBlob(int parameterIndex, Blob x) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setClob(int parameterIndex, Clob x) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setArray(int parameterIndex, Array x) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public ResultSetMetaData getMetaData() throws SQLException {
return getResultSet().getMetaData();
}
@Override
public void setDate(int parameterIndex, Date x, Calendar cal) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setTime(int parameterIndex, Time x, Calendar cal) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setNull(int parameterIndex, int sqlType, String typeName) throws SQLException {
params.put(parameterIndex, null);
}
@Override
public void setURL(int parameterIndex, URL x) throws SQLException {
params.put(parameterIndex, x.toString());
}
@Override
public ParameterMetaData getParameterMetaData() throws SQLException {
return null;
}
@Override
public void setRowId(int parameterIndex, RowId x) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setNString(int parameterIndex, String value) throws SQLException {
params.put(parameterIndex, value);
}
@Override
public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setNClob(int parameterIndex, NClob value) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setClob(int parameterIndex, Reader reader, long length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) throws SQLException {
params.put(parameterIndex, x);
}
@Override
public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setClob(int parameterIndex, Reader reader) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void setNClob(int parameterIndex, Reader reader) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void addBatch(String sql) throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public int[] executeBatch() throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void clearBatch() throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public void addBatch() throws SQLException {
throw new SQLFeatureNotSupportedException();
}
@Override
public ResultSet executeQuery(String sql) throws SQLException {
throw new SQLException(INVALID_CALL_MSG);
}
@Override
public int executeUpdate(String sql) throws SQLException {
throw new SQLException(INVALID_CALL_MSG);
}
@Override
public boolean execute(String sql) throws SQLException {
throw new SQLException(INVALID_CALL_MSG);
}
}