📄 preparedstatement.java
字号:
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: parameterAsNum = (Boolean.getBoolean((String) parameterObj) ? 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: 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 java.sql.SQLException("Unknown Types value", SQLError.SQL_STATE_GENERAL_ERROR); } } catch (Exception ex) { if (ex instanceof java.sql.SQLException) { throw (java.sql.SQLException) ex; } else { throw new java.sql.SQLException("Cannot convert " + parameterObj.getClass().toString() + " to SQL type requested due to " + ex.getClass().getName() + " - " + ex.getMessage(), SQLError.SQL_STATE_GENERAL_ERROR); } } } } /** * Set the value of a parameter using an object; use the java.lang * equivalent objects for integral values. * * @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 * * @throws SQLException if an error occurs */ public void setObject(int parameterIndex, Object parameterObj, int targetSqlType) throws SQLException { setObject(parameterIndex, parameterObj, targetSqlType, 0); } /** * Sets the given parameter to the given object. * * @param parameterIndex the parameter to set. * @param parameterObj the object to use as a value for the parameter. * * @throws SQLException if an error occurs. */ 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) { 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(<structured-type>) 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 * * @throws 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 * * @throws SQLException if a database 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) { try { setInternal(parameterIndex, StringUtils.getBytes("null", this.charConverter, this.charEncoding, this.connection.getServerCharacterEncoding(), this.connection.parserKnowsUnicode())); } catch (UnsupportedEncodingException uue) { throw new SQLException("Unsupported character encoding '" + this.charEncoding + "'", SQLError.SQL_STATE_ILLEGAL_ARGUMENT); } } else { StringBuffer buf = new StringBuffer((int) (x.length() * 1.1)); buf.append('\''); int stringLength = x.length(); 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('\\');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -