创建新用户MySQL语法错误

时间:2014-03-08 20:47:03

标签: java mysql jdbc

您好我正在为学校项目开发应用程序,我想创建一个将保存在数据库中的用户。

我创建了一个Profile类

public class Profile{

    private String username;
    private String password;


    public Profile(String _username, String _password){
        this.username = _username;
        this.password = _password;

    }

    public void setUsername(String username){
        this.username = username;
    }

    public String getUsername(){
        return this.username;
    }

    public void setPassword(String _password){
        this.password = _password;
    }

    public String getPassword(){
        return this.password;
    }

我创建了一个DBConnect类,它将包含所有方法,其中一个是CreateProfile,我希望用户将新配置文件的值插入数据库“user”表。

public class DBConnect {

    private Connection dbConnection;

    public DBConnect(){

        try{
            dbConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root");
        }catch(Exception ex){
            System.out.println("Connection failed :" +ex);
        }
    }
    public void createProfile(Profile profile){
        Statement stm = null;
        try{
            stm = dbConnection.createStatement();
            stm.executeUpdate("INSERT INTO User (Username,Password) VALUES (\"" + profile.getUsername() + "\", \"" + profile.getPassword()+ "\"");
        }catch(SQLException ex){
            System.out.println(ex);
        }
    }

最后在我的JFrame中,我有两个textFeild用户名和密码,我想使用它来传递profile构造函数的参数。完成此操作后,我将DBConnect对象启动连接,而不是调用在DBConnect中声明的Create Profile方法。

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    Profile p = new Profile(jTextField1.getText(), jPasswordField1.getText());
    DBConnect dbc = new DBConnect();
    dbc.createProfile(p);

所有内容都会编译但是当我运行程序并尝试创建新的配置文件时,我会收到此错误。

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的''附近使用正确的语法

我的MySQL表是一个简单的表,有两列名为“用户名”和“密码”

1 个答案:

答案 0 :(得分:0)

您需要将右括号放在字符串中:

stm.executeUpdate("INSERT INTO User (Username,Password) VALUES (\"" + profile.getUsername() + "\", \"" + profile.getPassword()+ "\")";