【问题标题】:Error when trying to add a student to database尝试将学生添加到数据库时出错
【发布时间】:2014-01-08 00:29:26
【问题描述】:

当我尝试添加具有一个属性名称的学生时出现错误。 错误是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“名称”附近使用正确的语法。

错误指出这个代码,

 //Class DAL
    public int addStudent(String name)throws SQLException{

        PreparedStatement studentStatement = getConnected().prepareStatement("insert       into person" + "values (?)") ;
        studentStatement.setString(1,name);
             //This is highlighted by the error
        int rSetStudent = studentStatement.executeUpdate();
        return rSetStudent;
    }

 //Class controller

public int addStudent(String name) throws SQLException{
          //This is highlighted
    return dal.addStudent(name);
}

//and this in class MainFrame where i use the add method from controller class
//this is highlighted
private void addStudent(){
    try{
                 //and this
        int a = controller.addStudent(nameTxtField.getText().trim());
    }catch(SQLException e){
        e.printStackTrace();
        }
}

当按钮添加被点击时,方法addStudent()被调用。 如果有人想知道我正在使用 MySql。

【问题讨论】:

    标签: java mysql sql data-access-layer


    【解决方案1】:

    应该是

    insert into person (name) values (?)
    

    【讨论】:

    • 哇,它修复了非常感谢。我会接受这个作为答案。
    【解决方案2】:

    检查这一行PreparedStatement studentStatement = getConnected().prepareStatement("insert into person" + "values (?)") 人和值之间没有空格

    这样做

    PreparedStatement studentStatement = getConnected().prepareStatement("insert into person " + "values (?)") 或者干脆

    PreparedStatement studentStatement = getConnected().prepareStatement("insert into person values (?)") 以免混淆空格

    【讨论】:

    • 这也有效,而且看起来更正确。我也会将此标记为答案。
    • @Eskipo 我建议你使用第二种方式
    • "i"+" "+"would"+" "+"choose"+" "+"the"+" "+second"+" "+"way"+" :D"
    • @JqueryLearner“好的”+“我会去”+“和它一起”:D
    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    相关资源
    最近更新 更多