Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 执行SELECT查询时PreparedStatement和ResultSet出现问题?_Java_Prepared Statement_Resultset - Fatal编程技术网

Java 执行SELECT查询时PreparedStatement和ResultSet出现问题?

Java 执行SELECT查询时PreparedStatement和ResultSet出现问题?,java,prepared-statement,resultset,Java,Prepared Statement,Resultset,更新和插入查询没有问题,仅SELECT有问题,所有代码如下: try { String nCard = jTextField1.getText(); String deprecate = jTextField2.getText(); DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String url = "jdbc:mysql://localhost:3306/

更新和插入查询没有问题,仅SELECT有问题,所有代码如下:

try {
        String nCard = jTextField1.getText();
        String deprecate = jTextField2.getText();
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        String url = "jdbc:mysql://localhost:3306/visits";
        Connection conn1 = DriverManager.getConnection(url, "root", "");

        PreparedStatement pstmt = conn1.prepareStatement("INSERT INTO `visits`.`transaction` (`numbercard`, `deprecate`) VALUES (?, ?)");
        pstmt.setString(1, nCard);
        pstmt.setString(2, deprecate);
        pstmt.executeUpdate();

        DrawTable();

        PreparedStatement pstmt1 = conn1.prepareStatement("SELECT `balance` FROM `visitor` WHERE `cardID`=?");
        int nCardInt = Integer.parseInt(nCard);
        pstmt1.setInt(1, nCardInt);
        ResultSet rs1 = pstmt1.executeQuery();
        int tempBonus=rs1.getInt(1);
        tempBonus-=Integer.parseInt(deprecate);
        String bonusString = String.valueOf(tempBonus);

        PreparedStatement pstmt2 = conn1.prepareStatement("UPDATE `visitor` SET `balance`=? WHERE cardID=?");
        pstmt2.setString(1, bonusString);
        pstmt2.setString(2, nCard);
        pstmt2.executeUpdate();
    } catch (SQLException ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }
我只需要1个ID单元格就可以使用它进行操作,“从
visitor
WHERE
cardID
=?”中选择
balance
。如果有人建议easyer方法,我将不胜感激。

您忘记了对的调用,这将使光标前进到第一行(如果有)

结果集光标最初位于第一行之前;对方法next的第一次调用使第一行成为当前行;第二个调用使第二行成为当前行,依此类推


现有代码有什么问题?
if (rs1.next())
{
    int tempBonus=rs1.getInt(1);
}