Java UCanaAccess:用户缺少权限或找不到对象
我正在尝试进行一些Ucanaccess实践,用java管理一些数据库。我遇到了一个我不知道如何解决的错误 我有一个名为access中的用户的表: 自动编号,短文本,短文本,编号 所以我要做的是检查给定的用户和密码是否正确,如果正确,则更改“CONEXIONES”。但我得到了这个错误: 线程“main”net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::4.0.1通常情况下,不允许使用privilegios suficientes或objeto no encontrado:Zu 19MIKE95 位于net.ucanaccess.jdbc.UcanaccessStatement.executeUpdate(UcanaccessStatement.java:221)Java UCanaAccess:用户缺少权限或找不到对象,java,ms-access,jdbc,privileges,ucanaccess,Java,Ms Access,Jdbc,Privileges,Ucanaccess,我正在尝试进行一些Ucanaccess实践,用java管理一些数据库。我遇到了一个我不知道如何解决的错误 我有一个名为access中的用户的表: 自动编号,短文本,短文本,编号 所以我要做的是检查给定的用户和密码是否正确,如果正确,则更改“CONEXIONES”。但我得到了这个错误: 线程“main”net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::4.0.1通常情况下,不允许使用privilegios suficientes或objeto
位于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);
代码仍在继续,但只有一些条件和查询。您的动态SQL正在创建一个将数据值与列名混淆的查询。您应该使用
PreparedStatement
和参数化查询,例如
sql=“更新用户设置CONEXIONES=1,其中USUARIO=?和CONTRASENA=?”;
PreparedStatement pstmt=connection.prepareStatement(sql);
pstmt.setString(1)=用户;
pstmt.setString(2)=通过;
int nrows=pstmt.executeUpdate();
在我的例子中,keepMirror=C:/db/mirrorName
连接选项就是罪魁祸首。。我移除了它,它工作了