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

📄 preparedstatement.java

📁 我费了好大劲才找到的一款非常全的OA办公自动化软件源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                case '\r':                    bOut.write('\\');                    bOut.write('r');                    break;                case '\\':                    bOut.write('\\');                    bOut.write('\\');                    break;                case '\'':                    bOut.write('\\');                    bOut.write('\'');                    break;                case '"': /* Better safe than sorry */                    bOut.write('\\');                    bOut.write('"');                    break;                case '\032': /* This gives problems on Win32 */                    bOut.write('\\');                    bOut.write('Z');                    break;                default:                    bOut.write(b);                }            }            bOut.write('\'');            setInternal(parameterIndex, bOut.toByteArray());        }    }    /**     * JDBC 2.0 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.     * 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, the second is 2, ...     * @param reader the java reader which contains the UNICODE data     * @param length the number of characters in the stream     *     * @throws SQLException if a database-access error occurs.     */    public void setCharacterStream(int parameterIndex, java.io.Reader reader,        int length) throws SQLException {        try {            if (reader == null) {                setNull(parameterIndex, Types.LONGVARCHAR);            } else {                char[] c = null;                int len = 0;                boolean useLength = this.connection.useStreamLengthsInPrepStmts();                if (useLength && (length != -1)) {                    c = new char[length];                    int numCharsRead = readFully(reader, c, length); // blocks until all read                    setString(parameterIndex, new String(c, 0, numCharsRead));                } else {                    c = new char[4096];                    StringBuffer buf = new StringBuffer();                    while ((len = reader.read(c)) != -1) {                        buf.append(c, 0, len);                    }                    setString(parameterIndex, buf.toString());                }            }        } catch (java.io.IOException ioEx) {            throw new SQLException(ioEx.toString(),                SQLError.SQL_STATE_GENERAL_ERROR);        }    }    /**     * JDBC 2.0 Set a CLOB parameter.     *     * @param i the first parameter is 1, the second is 2, ...     * @param x an object representing a CLOB     *     * @throws SQLException if a database error occurs     */    public void setClob(int i, Clob x) throws SQLException {        setString(i, x.getSubString(1L, (int) x.length()));    }    /**     * Set a parameter to a java.sql.Date value.  The driver converts this to a     * SQL DATE 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 setDate(int parameterIndex, java.sql.Date x)        throws SQLException {        if (x == null) {            setNull(parameterIndex, java.sql.Types.DATE);        } else {            // FIXME: Have instance version of this, problem as it's            //        not thread-safe :(            SimpleDateFormat dateFormatter = new SimpleDateFormat(                    "''yyyy-MM-dd''");            setInternal(parameterIndex, dateFormatter.format(x));        }    }    /**     * Set a parameter to a java.sql.Date value.  The driver converts this to a     * 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     * @param cal the calendar to interpret the date with     *     * @throws SQLException if a database-access error occurs.     */    public void setDate(int parameterIndex, java.sql.Date x, Calendar cal)        throws SQLException {        setDate(parameterIndex, x);    }    /**     * Set a parameter to a Java double value.  The driver converts this to a     * SQL DOUBLE value when it sends it to the database     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     *     * @throws SQLException if a database access error occurs     */    public void setDouble(int parameterIndex, double x)        throws SQLException {        setInternal(parameterIndex, fixDecimalExponent(String.valueOf(x)));    }    /**     * Set a parameter to a Java float value.  The driver converts this to a     * SQL FLOAT value when it sends it to the database.     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     *     * @throws SQLException if a database access error occurs     */    public void setFloat(int parameterIndex, float x) throws SQLException {        setInternal(parameterIndex, fixDecimalExponent(String.valueOf(x)));    }    /* (non-Javadoc)     * @see java.sql.Statement#getGeneratedKeys()     */    public synchronized java.sql.ResultSet getGeneratedKeys()        throws SQLException {        if (this.batchedGeneratedKeys == null) {            return super.getGeneratedKeys();        } else {            Field[] fields = new Field[1];            fields[0] = new Field("", "GENERATED_KEY", Types.BIGINT, 17);            return new com.mysql.jdbc.ResultSet(currentCatalog, fields,                new RowDataStatic(this.batchedGeneratedKeys), connection);        }    }    /**     * Set a parameter to a Java int value.  The driver converts this to a SQL     * INTEGER value when it sends it to the database.     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     *     * @throws SQLException if a database access error occurs     */    public void setInt(int parameterIndex, int x) throws SQLException {        setInternal(parameterIndex, String.valueOf(x));    }    /**     * Set a parameter to a Java long value.  The driver converts this to a SQL     * BIGINT value when it sends it to the database.     *     * @param parameterIndex the first parameter is 1...     * @param x the parameter value     *     * @throws SQLException if a database access error occurs     */    public void setLong(int parameterIndex, long x) throws SQLException {        setInternal(parameterIndex, String.valueOf(x));    }    /**     * The number, types and properties of a ResultSet's columns are provided     * by the getMetaData method.     *     * @return the description of a ResultSet's columns     *     * @throws SQLException if a database-access error occurs.     */    public synchronized java.sql.ResultSetMetaData getMetaData()        throws SQLException {        PreparedStatement mdStmt = null;        java.sql.ResultSet mdRs = null;        if (this.pstmtResultMetaData == null) {            try {                mdStmt = new PreparedStatement(this.connection,                        this.originalSql, this.currentCatalog, this.parseInfo);                mdStmt.setMaxRows(0);                int paramCount = this.parameterValues.length;                for (int i = 1; i <= paramCount; i++) {                    mdStmt.setString(i, "");                }                boolean hadResults = mdStmt.execute();                if (hadResults) {                    mdRs = mdStmt.getResultSet();                    this.pstmtResultMetaData = mdRs.getMetaData();                } else {                    this.pstmtResultMetaData = new ResultSetMetaData(new Field[0]);                }            } finally {                SQLException sqlExRethrow = null;                if (mdRs != null) {                    try {                        mdRs.close();                    } catch (SQLException sqlEx) {                        sqlExRethrow = sqlEx;                    }                    mdRs = null;                }                if (mdStmt != null) {                    try {                        mdStmt.close();                    } catch (SQLException sqlEx) {                        sqlExRethrow = sqlEx;                    }                    mdStmt = null;                }                if (sqlExRethrow != null) {                    throw sqlExRethrow;                }            }        }        return this.pstmtResultMetaData;    }    /**     * Set a parameter to SQL NULL     *      * <p>     * <B>Note:</B> You must specify the parameters SQL type (although MySQL     * ignores it)     * </p>     *     * @param parameterIndex the first parameter is 1, etc...     * @param sqlType the SQL type code defined in java.sql.Types     *     * @throws SQLException if a database access error occurs     */    public void setNull(int parameterIndex, int sqlType)        throws SQLException {        setInternal(parameterIndex, "null");        isNull[parameterIndex - 1] = true;    }    //--------------------------JDBC 2.0-----------------------------    /**     * Set a parameter to SQL NULL.     *      * <P>     * <B>Note:</B> You must specify the parameter's SQL type.     * </p>     *     * @param parameterIndex the first parameter is 1, the second is 2, ...     * @param sqlType SQL type code defined by java.sql.Types     * @param arg argument parameters for null     *     * @throws SQLException if a database-access error occurs.     */    public void setNull(int parameterIndex, int sqlType, String arg)        throws SQLException {        setNull(parameterIndex, sqlType);    }    /**     * Set the value of a parameter using an object; use the java.lang     * equivalent objects for integral values.     *      * <P>     * The given Java object will be converted to the targetSqlType before     * being sent to the database.     * </p>     *      * <P>     * note that this method may be used to pass database-specific abstract     * data types.  This is done by using a Driver-specific Java type and     * using a targetSqlType of java.sql.Types.OTHER     * </p>     *     * @param parameterIndex the first parameter is 1...     * @param parameterObj the object containing the input parameter value     * @param targetSqlType The SQL type to be send to the database     * @param scale For java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types     *        this is the number of digits after the decimal.  For all other     *        types this value will be ignored.     *     * @throws SQLException if a database access error occurs     * @throws java.sql.SQLException DOCUMENT ME!     */    public void setObject(int parameterIndex, Object parameterObj,        int targetSqlType, int scale) throws SQLException {        if (parameterObj == null) {            setNull(parameterIndex, java.sql.Types.OTHER);        } else {            try {                switch (targetSqlType) {                case Types.BIT:                case Types.TINYINT:                case Types.SMALLINT:                case Types.INTEGER:                case Types.BIGINT:                case Types.REAL:                case Types.FLOAT:                case Types.DOUBLE:                case Types.DECIMAL:                case Types.NUMERIC:

⌨️ 快捷键说明

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