0

我想知道以下代码段中的 setNull 和 setInt 方法中的输入参数引用了什么。什么是参数索引。SQL 类型是什么,我如何从数据库列/数据中确定它?

公共无效测试QUERY_UPDATEPORTFOLIO()抛出异常{

    UnitTestHelper helper = new UnitTestHelper();
    Connection con = helper.getConnection(helper.sourceDBUrl);
    Connection conTarget = helper.getConnection(helper.targetDBUrl);

    PreparedStatement stmt = con.prepareStatement(TRScheduleStatusCalculator.QUERY_UPDATEPORTFOLIO);
    stmt.setNull(1,Types.INTEGER);
    stmt.setInt(2,2290);
    ResultSet sourceVal = stmt.executeQuery();

    stmt = conTarget.prepareStatement(TRScheduleStatusCalculator.QUERY_UPDATEPORTFOLIO);
    stmt.setNull(1,Types.INTEGER);
    stmt.setInt(2,2290);
    ResultSet targetVal = stmt.executeQuery();


    assertTrue(helper.resultSetsEqual(sourceVal,targetVal));

}
4

4 回答 4

0

setNull方法允许您将JDBC/SQL NULL 值作为 IN 参数发送到数据库。

请参阅此线程以了解更多信息

于 2012-12-03T22:47:02.063 回答
0

PreparedStatement.setnull(paraIndex, SQLType)将指定占位符的SQL varchar类型设置为Nullstmt.setInt(2,2290); 在第二个占位符处设置一个 int 值 2290 。

于 2012-12-03T22:47:28.803 回答
0

将值设置为空:http ://www.java2s.com/Code/Java/Database-SQL-JDBC/DemoPreparedStatementSetNullforintvaluecolumn.htm

这是非常常见的做法,您可以为数据库表中的特定列明确设置 null

于 2012-12-03T22:47:54.287 回答
0

setNull() 调用将为第一个占位符提供 null 值。

setInt() 调用将值 2290 分配给第二个占位符。

您需要检查 QUERY_UPDATEPORTFOLIO 以找到占位符(问号)以确定它们在您的数据库中对应的内容。

于 2012-12-03T22:48:58.597 回答