UCanAccess:用户缺少未找到的权限或对象

时间:2017-04-05 16:39:45

标签: java ms-access jdbc privileges ucanaccess

我正在尝试使用java管理一些数据库进行一些Ucanaccess练习。我收到一个我不知道如何解决的错误。

我在访问中有这个名为USERS的表:

enter image description here

自动编号,短文本,短文本,数字。

所以我要做的是检查给定的用户和密码是否正确,如果是,则更改“CONEXIONES”。但是我收到了这个错误:

  

线程“main”中的异常net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc ::: 4.0.1 usuario no tiene privilegios suficientes o objeto no encontrado:Z_19MIKE95

     

at net.ucanaccess.jdbc.UcanaccessStatement.executeUpdate(UcanaccessStatement.java:221)
  在Ej4.Ej4.main(Ej4.java:32)

用英语表示:

  

UCAExc ::: 4.0.1用户缺少权限或找不到对象Z_19MIKE95

所以我的代码是这样的:

    Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
    String url="jdbc:ucanaccess://C:/Users/PC-Mikel/Desktop/Uni/Distribuidos/P4Ejer4.accdb";
    Connection connection = DriverManager.getConnection(url);
    Statement statement = connection.createStatement();
    String sql,user,pass;
    System.out.println("Introduzca Usuario");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    user = br.readLine();
    System.out.println("Introduzca Contraseña");
    BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
    pass = br2.readLine();
    sql= "UPDATE USERS SET CONEXIONES = 1 WHERE USUARIO = "+user+" AND CONTRASENA = " +pass;
    System.out.println(sql);
    int nrows = statement.executeUpdate(sql);

代码仍在继续,但只有一些条件和查询。

2 个答案:

答案 0 :(得分:1)

您的动态SQL正在创建一个将数据值与列名混淆的查询。您应该使用B参数化查询,例如

PreparedStatement

答案 1 :(得分:0)

在我的情况下,发现Connection的keepMirror=C:/db/mirrorName选项是反派。.我删除了它,然后起作用了...