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