📄 jdbcpreparedstatement.java
字号:
}
/**
* Adds the current settings to the batch.
*/
public void addBatch() throws SQLException {
try {
debugCodeCall("addBatch");
checkClosed();
ObjectArray parameters = command.getParameters();
Value[] set = new Value[parameters.size()];
for (int i = 0; i < parameters.size(); i++) {
ParameterInterface param = (ParameterInterface) parameters.get(i);
Value value = param.getParamValue();
set[i] = value;
}
if (batchParameters == null) {
batchParameters = new ObjectArray();
}
batchParameters.add(set);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* Calling this method is not legal on a PreparedStatement.
*
* @throws SQLException Unsupported Feature
*/
public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException {
try {
if (debug()) {
debugCode("executeUpdate("+quote(sql)+", "+autoGeneratedKeys+");");
}
throw Message.getSQLException(ErrorCode.METHOD_NOT_ALLOWED_FOR_PREPARED_STATEMENT);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* Calling this method is not legal on a PreparedStatement.
*
* @throws SQLException Unsupported Feature
*/
public int executeUpdate(String sql, int[] columnIndexes) throws SQLException {
try {
if (debug()) {
debugCode("executeUpdate(" + quote(sql) + ", " + quoteIntArray(columnIndexes) + ");");
}
throw Message.getSQLException(ErrorCode.METHOD_NOT_ALLOWED_FOR_PREPARED_STATEMENT);
} catch (Exception e) {
throw logAndConvert(e);
}
}
/**
* Calling this method is not legal on a PreparedStatement.
*
* @throws SQLException Unsupported Feature
*/
public int executeUpdate(String sql, String[] columnNames) throws SQLException {
try {
if (debug()) {
debugCode("executeUpdate(" + quote(sql) + ", " + quoteArray(columnNames) + ");");
}
throw Message.getSQLException(ErrorCode.METHOD_NOT_ALLOWED_FOR_PREPARED_STATEMENT);
} catch (Exception e) {
throw logAndConvert(e);
}
}
/**
* Calling this method is not legal on a PreparedStatement.
*
* @throws SQLException Unsupported Feature
*/
public boolean execute(String sql, int autoGeneratedKeys) throws SQLException {
try {
if (debug()) {
debugCode("execute(" + quote(sql) + ", " + autoGeneratedKeys + ");");
}
throw Message.getSQLException(ErrorCode.METHOD_NOT_ALLOWED_FOR_PREPARED_STATEMENT);
} catch (Exception e) {
throw logAndConvert(e);
}
}
/**
* Calling this method is not legal on a PreparedStatement.
*
* @throws SQLException Unsupported Feature
*/
public boolean execute(String sql, int[] columnIndexes) throws SQLException {
try {
if (debug()) {
debugCode("execute(" + quote(sql) + ", " + quoteIntArray(columnIndexes) + ");");
}
throw Message.getSQLException(ErrorCode.METHOD_NOT_ALLOWED_FOR_PREPARED_STATEMENT);
} catch (Exception e) {
throw logAndConvert(e);
}
}
/**
* Calling this method is not legal on a PreparedStatement.
*
* @throws SQLException Unsupported Feature
*/
public boolean execute(String sql, String[] columnNames) throws SQLException {
try {
if (debug()) {
debugCode("execute(" + quote(sql) + ", " + quoteArray(columnNames) + ");");
}
throw Message.getSQLException(ErrorCode.METHOD_NOT_ALLOWED_FOR_PREPARED_STATEMENT);
} catch (Exception e) {
throw logAndConvert(e);
}
}
/**
* Get the parameter meta data of this prepared statement.
*
* @return the meta data
*/
//#ifdef JDK14
public ParameterMetaData getParameterMetaData() throws SQLException {
try {
int id = getNextId(TraceObject.PARAMETER_META_DATA);
if (debug()) {
debugCodeAssign("ParameterMetaData", TraceObject.PARAMETER_META_DATA, id, "getParameterMetaData()");
}
checkClosed();
JdbcParameterMetaData meta = new JdbcParameterMetaData(session, this, command, id);
return meta;
} catch (Throwable e) {
throw logAndConvert(e);
}
}
//#endif
// =============================================================
JdbcPreparedStatement(SessionInterface session, JdbcConnection conn, String sql, int resultSetType, int id, boolean closeWithResultSet) throws SQLException {
super(session, conn, resultSetType, id, closeWithResultSet);
setTrace(session.getTrace(), TraceObject.PREPARED_STATEMENT, id);
command = conn.prepareCommand(sql, fetchSize);
}
private void setParameter(int parameterIndex, Value value) throws SQLException {
checkClosed();
parameterIndex--;
ObjectArray parameters = command.getParameters();
if (parameterIndex < 0 || parameterIndex >= parameters.size()) {
throw Message.getInvalidValueException("" + (parameterIndex + 1), "parameterIndex");
}
ParameterInterface param = (ParameterInterface) parameters.get(parameterIndex);
param.setValue(value);
}
/**
* [Not supported] Sets the value of a parameter as a row id.
*/
//#ifdef JDK16
/*
public void setRowId(int parameterIndex, RowId x) throws SQLException {
throw Message.getUnsupportedException();
}
*/
//#endif
/**
* Sets the value of a parameter.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @throws SQLException if this object is closed
*/
public void setNString(int parameterIndex, String x) throws SQLException {
try {
if (debug()) {
debugCode("setNString("+parameterIndex+", "+quote(x)+");");
}
Value v = x == null ? (Value) ValueNull.INSTANCE : ValueString.get(x);
setParameter(parameterIndex, v);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* Sets the value of a parameter as a character stream.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @param length the number of bytes
* @throws SQLException if this object is closed
*/
public void setNCharacterStream(int parameterIndex, Reader x, long length) throws SQLException {
try {
if (debug()) {
debugCode("setNCharacterStream("+parameterIndex+", x, "+length+"L);");
}
checkClosed();
Value v = conn.createClob(x, length);
setParameter(parameterIndex, v);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* Sets the value of a parameter as a character stream.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @throws SQLException if this object is closed
*/
public void setNCharacterStream(int parameterIndex, Reader x) throws SQLException {
setNCharacterStream(parameterIndex, x, -1);
}
/**
* Sets the value of a parameter as a Clob.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @throws SQLException if this object is closed
*/
//#ifdef JDK16
/*
public void setNClob(int parameterIndex, NClob x) throws SQLException {
try {
if (debug()) {
debugCode("setNClob("+parameterIndex+", x);");
}
checkClosed();
Value v;
if (x == null) {
v = ValueNull.INSTANCE;
} else {
v = conn.createClob(x.getCharacterStream(), -1);
}
setParameter(parameterIndex, v);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
*/
//#endif
/**
* Sets the value of a parameter as a Clob.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @throws SQLException if this object is closed
*/
public void setNClob(int parameterIndex, Reader x) throws SQLException {
try {
if (debug()) {
debugCode("setNClob("+parameterIndex+", x);");
}
checkClosed();
Value v = conn.createClob(x, -1);
setParameter(parameterIndex, v);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* Sets the value of a parameter as a Clob.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @throws SQLException if this object is closed
*/
public void setClob(int parameterIndex, Reader x, long length) throws SQLException {
try {
if (debug()) {
debugCode("setClob("+parameterIndex+", x, "+length+"L);");
}
checkClosed();
Value v = conn.createClob(x, length);
setParameter(parameterIndex, v);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* Sets the value of a parameter as a Blob.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @throws SQLException if this object is closed
*/
public void setBlob(int parameterIndex, InputStream x, long length) throws SQLException {
try {
if (debug()) {
debugCode("setBlob("+parameterIndex+", x, "+length+"L);");
}
checkClosed();
Value v = conn.createBlob(x, length);
setParameter(parameterIndex, v);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* Sets the value of a parameter as a Clob.
*
* @param parameterIndex the parameter index (1, 2, ...)
* @param x the value
* @throws SQLException if this object is closed
*/
public void setNClob(int parameterIndex, Reader x, long length) throws SQLException {
try {
if (debug()) {
debugCode("setNClob("+parameterIndex+", x, "+length+"L);");
}
checkClosed();
Value v = conn.createClob(x, length);
setParameter(parameterIndex, v);
} catch (Throwable e) {
throw logAndConvert(e);
}
}
/**
* [Not supported] Sets the value of a parameter as a SQLXML object.
*/
//#ifdef JDK16
/*
public void setSQLXML(int parameterIndex, SQLXML x) throws SQLException {
throw Message.getUnsupportedException();
}
*/
//#endif
/**
* INTERNAL
*/
public String toString() {
return getTraceObjectName() + ": " + command.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -