【问题标题】:What the setNull and setInt are doing in this statement?setNull 和 setInt 在这个语句中做了什么?
【发布时间】:2012-12-03 22:45:20
【问题描述】:

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

public void testQUERY_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));

}

【问题讨论】:

    标签: java sql jdbc


    【解决方案1】:

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

    【讨论】:

    • 从tr_request 中选择requestid、methodid、workplanid、requiredstart、requiredend,其中fundingportfolioid = ?" + " and requestid ? _______________________________________________________________________所以第一个参数 1,(1,Types.INTEGER) 用于投资组合 ID。第二个参数 2, (2, 2290) 是 requestid。那是对的吗。无论在哪里?标记是?
    【解决方案2】:

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

    查看thread了解更多信息

    【讨论】:

      【解决方案3】:

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

      在数据库表中为特定列明确设置空值是很常见的做法

      【讨论】:

        【解决方案4】:

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

        setInt() 调用将 2290 的值赋予第二个占位符。

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

        【讨论】:

        • “占位符”是什么意思,列、行或两者兼而有之?
        • @user1865053 是查询中的问号,例如insert into mytable (col1, col2, col3, col4) values (?, ?, ?, ?)。它是条件的列或值,例如... where id = ?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-22
        • 2017-07-17
        • 1970-01-01
        相关资源
        最近更新 更多