jdbc 设置PreparedStatement的参数
示例
查询字符串中的占位符需要使用以下set*方法设置:
String sql = "SELECT * FROM EMP WHERE JOB = ? AND SAL > ?"; //创建语句以进行操作 PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, "MANAGER"); // 字符串值 statement.setInt(2, 2850); // 整数值
特殊情况
设置NULL值:
不能使用例如setIntandsetLong方法来设置空值,因为它们使用原始类型(int和long)而不是对象(IntegerandLong),并且会引发aNullPointerException:
void setFloat(int parameterIndex, float x) void setInt(int parameterIndex, int x) void setLong(int parameterIndex, long x)
这些情况可以使用来处理setNull。
setNull(int parameterIndex, int sqlType)
它是类型化的,因此必须提供第二个参数,请参见java.sql.Types
//为整数值设置NULL statement.setNull(2, java.sql.Types.INTEGER);
设置LOB
LOB需要使用特殊对象。
Clob longContent = connection.createClob();
Writer longContentWriter = longContent.setCharacterStream(1);
longContentWriter.write("This will be the content of the CLOB");
pstmt = connection.prepareStatement("INSERT INTO CLOB_TABLE(CLOB_VALUE) VALUES (?)");
pstmt.setClob(1, longContent);set*方法的例外
SQLException—如果parameterIndex与SQL语句中的参数标记不对应;如果发生数据库访问错误或对关闭的PreparedStatement调用此方法。
SQLFeatureNotSupportedException-如果sqlType是ARRAY,BLOB,CLOB,DATALINK,JAVA_OBJECT,NCHAR,NCLOB,NVARCHAR,LONGNVARCHAR,REF,ROWID,SQLXML或STRUCT数据类型和JDBC驱动程序不支持此数据类型
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短