⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preparedstatement.java

📁 在资料浩瀚的互联网中
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                setString(parameterIndex, (String) parameterObj);            } else if (parameterObj instanceof BigDecimal) {                setBigDecimal(parameterIndex, (BigDecimal) parameterObj);            } else if (parameterObj instanceof Short) {                setShort(parameterIndex, ((Short) parameterObj).shortValue());            } else if (parameterObj instanceof Integer) {                setInt(parameterIndex, ((Integer) parameterObj).intValue());            } else if (parameterObj instanceof Long) {                setLong(parameterIndex, ((Long) parameterObj).longValue());            } else if (parameterObj instanceof Float) {                setFloat(parameterIndex, ((Float) parameterObj).floatValue());            } else if (parameterObj instanceof Double) {                setDouble(parameterIndex, ((Double) parameterObj).doubleValue());            } else if (parameterObj instanceof byte[]) {                setBytes(parameterIndex, (byte[]) parameterObj);            } else if (parameterObj instanceof java.sql.Date) {                setDate(parameterIndex, (java.sql.Date) parameterObj);            } else if (parameterObj instanceof Time) {                setTime(parameterIndex, (Time) parameterObj);            } else if (parameterObj instanceof Timestamp) {                setTimestamp(parameterIndex, (Timestamp) parameterObj);            } else if (parameterObj instanceof Boolean) {                setBoolean(parameterIndex,                    ((Boolean) parameterObj).booleanValue());            } else if (parameterObj instanceof InputStream) {                setBinaryStream(parameterIndex, (InputStream) parameterObj, -1);            } else if (parameterObj instanceof java.sql.Blob) {                setBlob(parameterIndex, (java.sql.Blob) parameterObj);            } else if (parameterObj instanceof java.sql.Clob) {                setClob(parameterIndex, (java.sql.Clob) parameterObj);            } else if (parameterObj instanceof java.util.Date) {                setTimestamp(parameterIndex,                    new Timestamp(((java.util.Date) parameterObj).getTime()));            } else {                setSerializableObject(parameterIndex, parameterObj);            }        }    }    /**     * @see PreparedStatement#getParameterMetaData()     */    public ParameterMetaData getParameterMetaData() throws SQLException {        throw new NotImplemented();    }    /**     * JDBC 2.0 Set a REF(&lt;structured-type&gt;) parameter.     *     * @param i the first parameter is 1, the second is 2, ...     * @param x an object representing data of an SQL REF Type     *     * @throws SQLException if a database error occurs     * @throws NotImplemented DOCUMENT ME!     */    public void setRef(int i, Ref x) throws SQLException {        throw new NotImplemented();    }    /**     * Set a parameter to a Java short value.  The driver converts this to a     * SQL SMALLINT value when it sends it to the database.     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     *     * @exception SQLException if a database access error occurs     */    public void setShort(int parameterIndex, short x) throws SQLException {        setInternal(parameterIndex, String.valueOf(x));    }    /**     * Set a parameter to a Java String value.  The driver converts this to a     * SQL VARCHAR or LONGVARCHAR value (depending on the arguments size     * relative to the driver's limits on VARCHARs) when it sends it to the     * database.     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     *     * @exception SQLException if a database access error occurs     */    public void setString(int parameterIndex, String x)        throws SQLException {        // if the passed string is null, then set this column to null        if (x == null) {            setNull(parameterIndex, Types.CHAR);        } else {            StringBuffer buf = new StringBuffer((int) (x.length() * 1.1));            buf.append('\'');            int stringLength = x.length();            //            // Note: buf.append(char) is _faster_ than            // appending in blocks, because the block            // append requires a System.arraycopy()....            // go figure...            //            for (int i = 0; i < stringLength; ++i) {                char c = x.charAt(i);                switch (c) {                case 0: /* Must be escaped for 'mysql' */                    buf.append('\\');                    buf.append('0');                    break;                case '\n': /* Must be escaped for logs */                    buf.append('\\');                    buf.append('n');                    break;                case '\r':                    buf.append('\\');                    buf.append('r');                    break;                case '\\':                    buf.append('\\');                    buf.append('\\');                    break;                case '\'':                    buf.append('\\');                    buf.append('\'');                    break;                case '"': /* Better safe than sorry */                	if (this.usingAnsiMode) {                		buf.append('\\');                	}                		                	buf.append('"');                    break;                case '\032': /* This gives problems on Win32 */                    buf.append('\\');                    buf.append('Z');                    break;                default:                    buf.append(c);                }            }            buf.append('\'');            String parameterAsString = buf.toString();            byte[] parameterAsBytes = null;            if (!this.isLoadDataQuery) {                parameterAsBytes = StringUtils.getBytes(parameterAsString,                        this.charConverter, this.charEncoding,                        this.connection.getServerCharacterEncoding(),                        this.connection.parserKnowsUnicode());            } else {                // Send with platform character encoding                parameterAsBytes = parameterAsString.getBytes();            }            setInternal(parameterIndex, parameterAsBytes);        }    }    /**     * Set a parameter to a java.sql.Time value.  The driver converts this to a     * SQL TIME value when it sends it to the database.     *     * @param parameterIndex the first parameter is 1...));     * @param x the parameter value     *     * @throws java.sql.SQLException if a database access error occurs     */    public void setTime(int parameterIndex, Time x)        throws java.sql.SQLException {        setTimeInternal(parameterIndex, x, TimeZone.getDefault(), false);    }    /**     * Set a parameter to a java.sql.Time value.  The driver converts this to a     * 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     * @param cal the cal specifying the timezone     *     * @throws SQLException if a database-access error occurs.     */    public void setTime(int parameterIndex, java.sql.Time x, Calendar cal)        throws SQLException {        setTimeInternal(parameterIndex, x, cal.getTimeZone(), true);    }    /**     * Set a parameter to a java.sql.Timestamp value.  The driver converts this     * to a 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     * @param cal the calendar specifying the timezone to use     *     * @throws SQLException if a database-access error occurs.     */    public void setTimestamp(int parameterIndex, java.sql.Timestamp x,        Calendar cal) throws SQLException {        setTimestampInternal(parameterIndex, x, cal.getTimeZone(), true);    }    /**     * Set a parameter to a java.sql.Timestamp value.  The driver converts this     * to a SQL TIMESTAMP value when it sends it to the database.     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     *     * @throws java.sql.SQLException if a database access error occurs     */    public void setTimestamp(int parameterIndex, Timestamp x)        throws java.sql.SQLException {        setTimestampInternal(parameterIndex, x, TimeZone.getDefault(), false);    }    /**     * @see PreparedStatement#setURL(int, URL)     */    public void setURL(int parameterIndex, URL arg) throws SQLException {        if (arg != null) {            setString(parameterIndex, arg.toString());        } else {            setNull(parameterIndex, Types.CHAR);        }    }    /**     * 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. JDBC will     * read the data from the stream as needed, until it reaches end-of-file.     * The JDBC driver will do any necessary conversion from UNICODE to the     * database char format.     *      * <P>     * <B>Note:</B> This stream object can either be a standard Java stream     * object or your own subclass that implements the standard interface.     * </p>     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     * @param length the number of bytes to read from the stream     *     * @throws SQLException if a database access error occurs     *     * @deprecated     */    public void setUnicodeStream(int parameterIndex, InputStream x, int length)        throws SQLException {        if (x == null) {            setNull(parameterIndex, java.sql.Types.VARCHAR);        } else {            setBinaryStream(parameterIndex, x, length);        }    }    /**     * JDBC 2.0 Add a set of parameters to the batch.     *     * @exception SQLException if a database-access error occurs.     *     * @see Statement#addBatch     */    public void addBatch() throws SQLException {        if (this.batchedArgs == null) {        	this.batchedArgs = new ArrayList();        }        this.batchedArgs.add(new BatchParams(this.parameterValues,                this.parameterStreams, this.isStream, this.streamLengths,                this.isNull));    }    /**     * In general, parameter values remain in force for repeated used 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 clearParameters     *     * @exception SQLException if a database access error occurs     */    public void clearParameters() throws SQLException {        for (int i = 0; i < this.parameterValues.length; i++) {            this.parameterValues[i] = null;            this.parameterStreams[i] = null;            this.isStream[i] = false;            this.isNull[i] = false;        }    }    /**     * Closes this prepared statement and releases all resources.     *     * @throws SQLException if database error occurs.     */    public void close() throws SQLException {        realClose(true);    }    /**     * Some prepared statements return multiple results; the execute method     * handles these complex statements as well as the simpler form of     * statements handled by executeQuery and executeUpdate     *     * @return true if the next result is a ResultSet; false if it is an update     *         count or there are no more results     *     * @exception SQLException if a database access error occurs     */    public boolean execute() throws SQLException {        if (this.connection.isReadOnly() && (this.firstCharOfStmt != 'S')) {            throw new SQLException(Messages.getString("PreparedStatement.20") //$NON-NLS-1$                + Messages.getString("PreparedStatement.21"), //$NON-NLS-1$                SQLError.SQL_STATE_ILLEGAL_ARGUMENT);        }        checkClosed();        ResultSet rs = null;        synchronized (this.connection.getMutex()) {            clearWarnings();            this.batchedGeneratedKeys = null;            Buffer sendPacket = fillSendPacket();            String oldCatalog = null;            if (!this.connection.getCatalog().equals(this.currentCatalog)) {                oldCatalog = this.connection.getCatalog();                this.connection.setCatalog(this.currentCatalog);            }            boolean oldInfoMsgState = false;            if (this.retrieveGeneratedKeys) {                oldInfoMsgState = this.connection.isReadInfoMsgEnabled();                this.connection.setReadInfoMsgEnabled(true);            }            // If there isn't a limit clause in the SQL            // then limit the number of rows to return in            // an efficient manner. Only do this if            // setMaxRows() hasn't been used on any Statements            // generated from the current Connection (saves            // a query, and network traffic).

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -