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

📄 preparedstatement.java

📁 在资料浩瀚的互联网中
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                    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     *     * @exception SQLException if a database access error occurs     */    public void setNull(int parameterIndex, int sqlType)        throws SQLException {        setInternal(parameterIndex, "null"); //$NON-NLS-1$        this.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     *     * @exception 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     */    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:                    Number parameterAsNum;                    if (parameterObj instanceof Boolean) {                        parameterAsNum = ((Boolean) parameterObj).booleanValue()                            ? new Integer(1) : new Integer(0);                    } else if (parameterObj instanceof String) {                        switch (targetSqlType) {                        case Types.BIT:                        	boolean parameterAsBoolean = "true".equalsIgnoreCase((String) parameterObj);                        	                            parameterAsNum = parameterAsBoolean                                ? new Integer(1) : new Integer(0);                            break;                        case Types.TINYINT:                        case Types.SMALLINT:                        case Types.INTEGER:                            parameterAsNum = Integer.valueOf((String) parameterObj);                            break;                        case Types.BIGINT:                            parameterAsNum = Long.valueOf((String) parameterObj);                            break;                        case Types.REAL:                            parameterAsNum = Float.valueOf((String) parameterObj);                            break;                        case Types.FLOAT:                        case Types.DOUBLE:                            parameterAsNum = Double.valueOf((String) parameterObj);                            break;                        case Types.DECIMAL:                        case Types.NUMERIC:default:                            parameterAsNum = new java.math.BigDecimal((String) parameterObj);                        }                    } else {                        parameterAsNum = (Number) parameterObj;                    }                    switch (targetSqlType) {                    case Types.BIT:                    case Types.TINYINT:                    case Types.SMALLINT:                    case Types.INTEGER:                        setInt(parameterIndex, parameterAsNum.intValue());                        break;                    case Types.BIGINT:                        setLong(parameterIndex, parameterAsNum.longValue());                        break;                    case Types.REAL:                        setFloat(parameterIndex, parameterAsNum.floatValue());                        break;                    case Types.FLOAT:                    case Types.DOUBLE:                        setDouble(parameterIndex, parameterAsNum.doubleValue());                        break;                    case Types.DECIMAL:                    case Types.NUMERIC:default:                        if (parameterAsNum instanceof java.math.BigDecimal) {                            setBigDecimal(parameterIndex,                                (java.math.BigDecimal) parameterAsNum);                        } else if (parameterAsNum instanceof java.math.BigInteger) {                            setBigDecimal(parameterIndex,                                new java.math.BigDecimal(                                    (java.math.BigInteger) parameterAsNum, scale));                        } else {                            setBigDecimal(parameterIndex,                                new java.math.BigDecimal(                                    parameterAsNum.doubleValue()));                        }                        break;                    }                    break;                case Types.CHAR:                case Types.VARCHAR:                case Types.LONGVARCHAR:                	if (parameterObj instanceof BigDecimal) {                		setString(parameterIndex, (StringUtils.fixDecimalExponent(StringUtils.consistentToString((BigDecimal)parameterObj))));                	} else {                		setString(parameterIndex, parameterObj.toString());                	}                    break;                case Types.CLOB:                    if (parameterObj instanceof java.sql.Clob) {                        setClob(parameterIndex, (java.sql.Clob) parameterObj);                    } else {                        setString(parameterIndex, parameterObj.toString());                    }                    break;                case Types.BINARY:                case Types.VARBINARY:                case Types.LONGVARBINARY:                case Types.BLOB:                    if (parameterObj instanceof byte[]) {                        setBytes(parameterIndex, (byte[]) parameterObj);                    } else if (parameterObj instanceof java.sql.Blob) {                        setBlob(parameterIndex, (java.sql.Blob) parameterObj);                    } else {                        setBytes(parameterIndex,                            StringUtils.getBytes(parameterObj.toString(),                                this.charConverter, this.charEncoding,                                this.connection.getServerCharacterEncoding(),                                this.connection.parserKnowsUnicode()));                    }                    break;                case Types.DATE:                case Types.TIMESTAMP:                    java.util.Date parameterAsDate;                    if (parameterObj instanceof String) {                        ParsePosition pp = new ParsePosition(0);                        java.text.DateFormat sdf = new java.text.SimpleDateFormat(getDateTimePattern(                                    (String) parameterObj, false));                        parameterAsDate = sdf.parse((String) parameterObj, pp);                    } else {                        parameterAsDate = (java.util.Date) parameterObj;                    }                    switch (targetSqlType) {                    case Types.DATE:                        if (parameterAsDate instanceof java.sql.Date) {                            setDate(parameterIndex,                                (java.sql.Date) parameterAsDate);                        } else {                            setDate(parameterIndex,                                new java.sql.Date(parameterAsDate.getTime()));                        }                        break;                    case Types.TIMESTAMP:                        if (parameterAsDate instanceof java.sql.Timestamp) {                            setTimestamp(parameterIndex,                                (java.sql.Timestamp) parameterAsDate);                        } else {                            setTimestamp(parameterIndex,                                new java.sql.Timestamp(                                    parameterAsDate.getTime()));                        }                        break;                    }                    break;                case Types.TIME:                    if (parameterObj instanceof String) {                        java.text.DateFormat sdf = new java.text.SimpleDateFormat(getDateTimePattern(                                    (String) parameterObj, true));                        setTime(parameterIndex,                            new java.sql.Time(sdf.parse((String) parameterObj)                                                 .getTime()));                    } else if (parameterObj instanceof Timestamp) {                        Timestamp xT = (Timestamp) parameterObj;                        setTime(parameterIndex, new java.sql.Time(xT.getTime()));                    } else {                        setTime(parameterIndex, (java.sql.Time) parameterObj);                    }                    break;                case Types.OTHER:                    setSerializableObject(parameterIndex, parameterObj);                    break;                default:                    throw new SQLException(Messages.getString("PreparedStatement.16"), //$NON-NLS-1$                        SQLError.SQL_STATE_GENERAL_ERROR);                }            } catch (Exception ex) {                if (ex instanceof SQLException) {                    throw (SQLException) ex;                }                                throw new SQLException(Messages.getString("PreparedStatement.17") //$NON-NLS-1$                		+ parameterObj.getClass().toString()						+ Messages.getString("PreparedStatement.18") //$NON-NLS-1$						+ ex.getClass().getName() + Messages.getString("PreparedStatement.19") + ex.getMessage(), //$NON-NLS-1$						SQLError.SQL_STATE_GENERAL_ERROR);            }        }    }    /**     * DOCUMENT ME!     *     * @param parameterIndex DOCUMENT ME!     * @param parameterObj DOCUMENT ME!     * @param targetSqlType DOCUMENT ME!     *     * @throws SQLException DOCUMENT ME!     */    public void setObject(int parameterIndex, Object parameterObj,        int targetSqlType) throws SQLException {        setObject(parameterIndex, parameterObj, targetSqlType, 0);    }    /**     * DOCUMENT ME!     *     * @param parameterIndex DOCUMENT ME!     * @param parameterObj DOCUMENT ME!     *     * @throws SQLException DOCUMENT ME!     */    public void setObject(int parameterIndex, Object parameterObj)        throws SQLException {        if (parameterObj == null) {            setNull(parameterIndex, java.sql.Types.OTHER);        } else {            if (parameterObj instanceof Byte) {                setInt(parameterIndex, ((Byte) parameterObj).intValue());            } else if (parameterObj instanceof String) {

⌨️ 快捷键说明

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