📄 i18npreparedstatement.java
字号:
/**
Copyright (C) 2002-2003 Together
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.webdocwf.util.i18njdbc;
import java.io.File;
import java.io.FileInputStream;
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.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.Vector;
/**
* This class implements the PreparedStatement interface for the I18nJdbc driver.
*
* @author Zoran Milakovic
* @author Zeljko Kovacevic
*/
public class I18nPreparedStatement implements PreparedStatement {
private I18nConnection connection;
private Vector resultSets = new Vector();
private String sqlForPrepare = "";
private String sqlPrepared = "";
private int paramCount = 0;
private ArrayList parameters = new ArrayList();
private ArrayList binaryStreamParameters = new ArrayList();
private I18nProperties properties;
/** Name used for prepared statement parameters */
public static String PREPARE_SEPARATOR = "~@#NEXTPARAMETER#@~";
private String sql;
public I18nPreparedStatement(I18nConnection connection, String preparedSql) {
DriverManager.println("I18nJdbc - I18nStatement() - connection=" + connection);
this.sqlForPrepare = preparedSql;
this.sqlPrepared = preparedSql;
this.properties = new I18nProperties();
this.paramCount = countParameters(preparedSql);
for ( int i = 0; i < paramCount; i++ )
parameters.add(null);
this.connection = connection;
try {
if(!connection.getAutoCommit()){}
// write=new I18nWriter(
// null,
// connection.getExtension()
// );
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private int countParameters(String sql) {
int count = 0;
int index = sql.indexOf(PREPARE_SEPARATOR);
while( index != -1 ) {
count++;
sql = sql.substring(index+1);
index = sql.indexOf(PREPARE_SEPARATOR);
}
return count;
}
private boolean prepareSql() throws SQLException {
boolean retVal = true;
for (int i = 0; i < parameters.size(); i++) {
int index = sqlPrepared.indexOf(PREPARE_SEPARATOR);
String val;
if (index != -1) {
if( parameters.get(i) == null )
val = "null";
else
val = parameters.get(i).toString();
sqlPrepared = sqlPrepared.substring(0, index) +
val +
sqlPrepared.substring(index + PREPARE_SEPARATOR.length());
}
}
if (sqlPrepared.indexOf(PREPARE_SEPARATOR) != -1)
throw new SQLException(
"All ? in prepared query has to be replaced with values.");
else if (parameters.size() < this.paramCount)
throw new SQLException(
"Number of setted parameters is less than number of parameters in statement.");
else if (parameters.size() > this.paramCount)
throw new SQLException(
"Number of setted parameters is greater than number of parameters in statement.");
return retVal;
}
/**
*Sets the maxFieldSize attribute of the I18nStatement object
*
* @param p0 The new maxFieldSize value
* @exception SQLException Description of Exception
* @since
*/
public void setMaxFieldSize(int p0) throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Sets the maxRows attribute of the I18nStatement object
*
* @param p0 The new maxRows value
* @exception SQLException Description of Exception
* @since
*/
public void setMaxRows(int p0) throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Sets the escapeProcessing attribute of the I18nStatement object
*
* @param p0 The new escapeProcessing value
* @exception SQLException Description of Exception
* @since
*/
public void setEscapeProcessing(boolean p0) throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Sets the queryTimeout attribute of the I18nStatement object
*
* @param p0 The new queryTimeout value
* @exception SQLException Description of Exception
* @since
*/
public void setQueryTimeout(int p0) throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Sets the cursorName attribute of the I18nStatement object
*
* @param p0 The new cursorName value
* @exception SQLException Description of Exception
* @since
*/
public void setCursorName(String p0) throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Sets the fetchDirection attribute of the I18nStatement object
*
* @param p0 The new fetchDirection value
* @exception SQLException Description of Exception
* @since
*/
public void setFetchDirection(int p0) throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Sets the fetchSize attribute of the I18nStatement object
*
* @param p0 The new fetchSize value
* @exception SQLException Description of Exception
* @since
*/
public void setFetchSize(int p0) throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the maxFieldSize attribute of the I18nStatement object
*
* @return The maxFieldSize value
* @exception SQLException Description of Exception
* @since
*/
public int getMaxFieldSize() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the maxRows attribute of the I18nStatement object
*
* @return The maxRows value
* @exception SQLException Description of Exception
* @since
*/
public int getMaxRows() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the queryTimeout attribute of the I18nStatement object
*
* @return The queryTimeout value
* @exception SQLException Description of Exception
* @since
*/
public int getQueryTimeout() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the warnings attribute of the I18nStatement object
*
* @return The warnings value
* @exception SQLException Description of Exception
* @since
*/
public SQLWarning getWarnings() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the resultSet attribute of the I18nStatement object
*
* @return The resultSet value
* @exception SQLException Description of Exception
* @since
*/
public ResultSet getResultSet() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the updateCount attribute of the I18nStatement object
*
* @return The updateCount value
* @exception SQLException Description of Exception
* @since
*/
public int getUpdateCount() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the moreResults attribute of the I18nStatement object
*
* @return The moreResults value
* @exception SQLException Description of Exception
* @since
*/
public boolean getMoreResults() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the fetchDirection attribute of the I18nStatement object
*
* @return The fetchDirection value
* @exception SQLException Description of Exception
* @since
*/
public int getFetchDirection() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the fetchSize attribute of the I18nStatement object
*
* @return The fetchSize value
* @exception SQLException Description of Exception
* @since
*/
public int getFetchSize() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the resultSetConcurrency attribute of the I18nStatement object
*
* @return The resultSetConcurrency value
* @exception SQLException Description of Exception
* @since
*/
public int getResultSetConcurrency() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the resultSetType attribute of the I18nStatement object
*
* @return The resultSetType value
* @exception SQLException Description of Exception
* @since
*/
public int getResultSetType() throws SQLException
{
throw new SQLException("Not Supported !");
}
/**
*Gets the connection attribute of the I18nStatement object
*
* @return The connection value
* @exception SQLException Description of Exception
* @since
*/
public Connection getConnection() throws SQLException
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -