java - 用户缺少权限或找不到对象 : XXXX

标签 java database

当我尝试将数据放入数据库时​​出现此错误 这是我的注册功能

void signup() throws SQLException {

          String name=signupForm.getSignUpName().getText();
           String password=new String(signupForm.getSignUpPassword().getPassword());


          System.out.println(name);
          System.out.println(password);
        conn= getConnection();
        statement = conn.createStatement();
        query = "INSERT INTO student_signup(student_password) VALUES"+"("+password+")";
          System.out.println(name);

                     rs=statement.executeQuery(query);



            statement.close();
            conn.close();

}

例如,如果我输入 qweqweqwe 作为密码,那么错误将类似于 用户缺少权限或找不到对象:qweqweqwe

表名和字段名与查询中的一样,所以没有问题

完整的错误是这样的:

Exception in thread "AWT-EventQueue-0" java.security.PrivilegedActionException: java.security.PrivilegedActionException: net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: QWEQW

最佳答案

SQL 中的字符串应该用单引号限制,因此您应该按如下方式更新您的查询:

query = "INSERT INTO student_signup(student_password) VALUES"+"('"+password+"')";

实际上,通过连接字符串创建查询是一个非常糟糕的主意,因为您的代码可能容易受到 SQL 注入(inject)。更好的方法是使用准备好的语句:

PreparedStatement statement = conn.prepareStatement("INSERT INTO student_signup(student_password) VALUES(?)");
statement.setString(1, password);
statement.execute();

关于java - 用户缺少权限或找不到对象 : XXXX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54841932/

相关文章:

java - 如何刷新 View

java - Java中如何识别标签的ID

php - 遍历多行 mysqli 的列值

sql - 从内部连接更新

java - 如何使用 hibernate CRITERIA 编写此连接查询

java - 包 javax.jnlp 在模块 java.jnlp 中声明,它不在模块图中

java - 这段代码在 JAVA 中的 JUnit 中如何工作?

java - Maven发布插件: perform a few deploy in a row

php - 统计一个数据表并求和,用默认值填充一个空数据

sql - 许多小型 SQL 调用或少量大型 SQL 调用?