2017-04-05 9 views
1

私はいくつかのデータベースをjavaで管理するUcanaccessの練習をしようとしています。そして、私は解決する方法がわからないというエラーが発生しています。UCanAccess:特権がないか、オブジェクトが見つかりません

私はこのテーブルを持っているが、アクセスにUSERSと呼ばれる:

enter image description here

オートナンバー、ショートテキスト、ショートテキスト、数値。

私がしようとしているのは、特定のユーザーとパスワードが正しいかどうかを確認し、そうであれば "CONEXIONES"を変更することです。しかし、私はこのエラーを取得しています:

Exception in thread "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)
at Ej4.Ej4.main(Ej4.java:32)

英語で意味する:

UCAExc:::4.0.1 user lacks of privileges or object not found 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); 

コードが続くが、ちょうどいくつかの条件とクエリがあります。

答えて

1

動的SQLは、データ値と列名を混同するクエリを作成しています。 PreparedStatementのパラメータ化クエリを使用する必要があります。

関連する問題