1

I have updated the code and now the only error I am getting is a syntax error which I'm unsure how to resolve :

    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();
            }   
        }
    });

Eclipse IDE

Error Message

2
  • where is your gui class? paste relevant code? what's the exact error? On which line is compiler complaining about the same? Commented Apr 18, 2017 at 11:24
  • Using Prepared Statements Commented Apr 18, 2017 at 11:24

1 Answer 1

1

To avoid any Syntax error like your case, or SQL Injection you have to use PreparedStatement, for example :

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");
}

You are missing ' in your query :

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

and :

+ "','" + genderText.getText() + "' )";
//---^----------------------------^

Edit

Ok you have a small problem in your code, use this instead :

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();
        }
    }
});
Sign up to request clarification or add additional context in comments.

17 Comments

Ok so this works much better thanks! The only syntax error i'm getting now is at the end of : String searchQuery = "INSERT INTO user(user_id, genre_id, hair_length,user_fname,user_lname,user_age,user_gender) VALUES (?, ?, ?, ?, ?, ?, ?)"; Syntax Error on token ";" , try expected after this token
@NeilDavies your query should look like this String searchQuery = "INSERT INTO user(user_id, genre_id, hair_length, " + "user_fname,user_lname,user_age,user_gender) " + "VALUES (?, ?, ?, ?, ?, ?, ?)";
that is how i have written it but I am still getting a syntax error at the end of the query just on the ; Syntax error on token ";", try expected after this token
String searchQuery = "INSERT INTO user (user_id, genre_id, hair_length, " + "user_fname,user_lname,user_age,user_gender) " + "VALUES (?, ?, ?, ?, ?, ?, ?)";
I am relatively new to stack overflow so don't have access to chat yet
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.