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驱动程序不支持此数据类型
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下