Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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表_Java_Mysql_User Interface_Jdbc_Add - Fatal编程技术网

用Java更新MySQL表

用Java更新MySQL表,java,mysql,user-interface,jdbc,add,Java,Mysql,User Interface,Jdbc,Add,我已经更新了代码,现在唯一的错误是语法错误,我不确定如何解决: JButton addButton = new JButton("Add"); addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { st = co

我已经更新了代码,现在唯一的错误是语法错误,我不确定如何解决:

    JButton addButton = new JButton("Add");
    addButton.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            try 
            {
                st = con.createStatement();     
                String searchQuery = "INSERT INTO user (user_id, genre_id, hair_length, " + "user_fname, user_lname, user_age, user_gender) " + "VALUES (?, ?, ?, ?, ?, ?, ?)"; 
               (PreparedStatement insert = con.prepareStatement(searchQuery))
               {         
                   insert.setString(1, userText.getText());
                   insert.setString(2, genreText.getText());
                   innsert.setString(3, hairText.getText());
                   insert.setString(4, firstText.getText());
                   insert.setString(6, ageText.getText());
                   insert.setString(7, genderText.getText());
                   insert.executeUpdate(searchQuery);
               }
        JOptionPane.showMessageDialog(null, "Data Added To MySQL");             
                }
            catch (SQLException e1)
            {
                e1.printStackTrace();
            }   
        }
    });


为了避免任何语法错误,如案例或SQL注入,您必须使用PreparedStatement,例如:

String searchQuery = "INSERT INTO `user`(`user_id`, `genre_id`, `hair_length`, "
            + "`user_fname`,`user_lname`,`user_age`,`user_gender`) "
            + "VALUES (?, ?, ?, ?, ?, ?, ?)";

try (PreparedStatement insert = con.prepareStatement(searchQuery)) {
    insert.setString(1, userText.getText());
    insert.setString(2, genreText.getText());
    ...
    insert.executeUpdate();
    JOptionPane.showMessageDialog(null, "Data Added To MySQL");
}

查询中缺少

+ "', '" + hairText.getText() + "','" +
//----^--------------------------^
以及:


编辑

好的,如果您的代码中有一个小问题,请改用以下方法:

JButton addButton = new JButton("Add");
addButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        String searchQuery = "INSERT INTO `user`(`user_id`, `genre_id`, `hair_length`, "
                + "`user_fname`,`user_lname`,`user_age`,`user_gender`) "
                + "VALUES (?, ?, ?, ?, ?, ?, ?)";

        try (PreparedStatement insert = con.prepareStatement(searchQuery)) {
            insert.setString(1, userText.getText());
            insert.setString(2, genreText.getText());
            insert.setString(3, hairText.getText());
            insert.setString(4, firstText.getText());
            insert.setString(5, surText.getText());
            insert.setString(6, ageText.getText());
            insert.setString(7, genderText.getText());
            insert.executeUpdate(searchQuery);
            JOptionPane.showMessageDialog(null, "Data Added To MySQL");
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
});

你的gui课程在哪里?粘贴相关代码?确切的错误是什么?编译器在哪一行抱怨相同的问题?好的,这样效果更好,谢谢!我现在遇到的唯一语法错误是:String searchQuery=“INSERT INTO
user
user\u id
genre\u id
hair\u length
user\u fname
user\u lname
user\u gender
)值(?,,,,,,,,,,,,,,,,,,?)”;令牌“;”上出现语法错误,应在此之后重试token@NeilDavies您的查询应该如下所示:
String searchQuery=“INSERT INTO
user
user\u id
genre\u id
hair\u length
,“+”
user\u lname
user\u age
user\u gender
)”+“值(?,,,,,,,,,,?)”这就是我编写它的方式,但是在查询的末尾,我仍然会遇到一个语法错误;令牌“;”上出现语法错误,请在此令牌字符串后重试searchQuery=“插入用户(用户id、类型id、头发长度,“+”用户名称、用户名称、用户年龄、用户性别)”+”值(?,,,,,,,,,,,,,?);我对堆栈溢出比较陌生,所以还没有访问聊天的权限
JButton addButton = new JButton("Add");
addButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        String searchQuery = "INSERT INTO `user`(`user_id`, `genre_id`, `hair_length`, "
                + "`user_fname`,`user_lname`,`user_age`,`user_gender`) "
                + "VALUES (?, ?, ?, ?, ?, ?, ?)";

        try (PreparedStatement insert = con.prepareStatement(searchQuery)) {
            insert.setString(1, userText.getText());
            insert.setString(2, genreText.getText());
            insert.setString(3, hairText.getText());
            insert.setString(4, firstText.getText());
            insert.setString(5, surText.getText());
            insert.setString(6, ageText.getText());
            insert.setString(7, genderText.getText());
            insert.executeUpdate(searchQuery);
            JOptionPane.showMessageDialog(null, "Data Added To MySQL");
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
});