Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 更新查询在mysql中工作,但在netbeans中不工作_Java_Mysql_Sql_Netbeans - Fatal编程技术网

Java 更新查询在mysql中工作,但在netbeans中不工作

Java 更新查询在mysql中工作,但在netbeans中不工作,java,mysql,sql,netbeans,Java,Mysql,Sql,Netbeans,更新查询在mysql中工作得很好,但在netbeans中却不行。未显示任何错误,但仍不更新表。where子句可能有一些问题。请帮我解决这个问题。我认为您给出的值在错误的位置。解释如下 你的问题是 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { String hostip = hmodify.getText(); Strin

更新查询在mysql中工作得很好,但在netbeans中却不行。未显示任何错误,但仍不更新表。where子句可能有一些问题。请帮我解决这个问题。

我认为您给出的值在错误的位置。解释如下

你的问题是

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String hostip = hmodify.getText();
String source = sdmodify.getText();
String target = tdmodify.getText();
String login =  lnmodify.getText();
String password = String.valueOf(pmodify.getPassword());
String scheduledOn = somodify.getText();
String scheduledAt = samodify.getText();
    Connection conn = null;
    conn = MySqlConnect1.ConnectDB();
    PreparedStatement pstmt = null;
    try {
        String sql = "update host set target_dir=?, source_dir=?, login_name=?, password=?, backup_schedule=?, backup_time=? where host=?";
        Class.forName("com.mysql.jdbc.Driver");
        pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, hostip);
        pstmt.setString(2, source);
        pstmt.setString(3, target);
        pstmt.setString(4, login);
        pstmt.setString(5, password);
        pstmt.setString(6, scheduledOn);
        pstmt.setString(7, scheduledAt);
        int i = pstmt.executeUpdate();
        if(i>0)
        {
            JOptionPane.showMessageDialog(null,"Data is Saved");
        }
        else
        {
            JOptionPane.showMessageDialog(null,"Data is Not Saved");
        }


    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}
假设主机ip为“192.168.10.10”,执行以下语句时
pstmt.setString(1,主机IP)您的查询将变为

    String sql = "update host set target_dir=?, source_dir=?, 
login_name=?, password=?, backup_schedule=?, backup_time=? where host=?";

因此,请确保与值对应的数字在pstmt.setString语句中的顺序正确。如果您为所有列设置了错误的顺序,请尝试此操作(尤其是对于
hostip
,它实际上是您的
where
子句)


在我看来,参数的顺序是错误的。hostip参数应该是最后一个吗?
    update host set target_dir="192.168.10.10", source_dir=?,
 login_name=?, password=?, backup_schedule=?, backup_time=? where host=?;
    pstmt.setString(1, target);
    pstmt.setString(2, source);
    pstmt.setString(3, login);
    pstmt.setString(4, password);
    pstmt.setString(5, scheduledOn);
    pstmt.setString(6, scheduledAt);
    pstmt.setString(7, hostip);