📄 preparedstatement.java
字号:
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));
}
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 {
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));
} 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('\\');
buf.append('r');
break;
case '\\':
buf.append('\\');
buf.append('\\');
break;
case '\'':
buf.append('\\');
buf.append('\'');
break;
case '"': /* Better safe than sorry */
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();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -