I have a problem with UcanAccess, which is when using the WHERE clause, it throws me an error.
ConnectAccess.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectAccess {
static String rutaDB;
static String user;
static String pass;
static String sql;
public static String getRutaDB() {
return rutaDB;
}
public void setRutaDB(String rutaDB) {
ConnectAccess.rutaDB = rutaDB;
}
public static String getUser() {
return user;
}
public void setUser(String user) {
ConnectAccess.user = user;
}
public static String getPass() {
return pass;
}
public void setPass(String pass) {
ConnectAccess.pass = pass;
}
public static String getSql() {
return sql;
}
public void setSql(String sql) {
ConnectAccess.sql = sql;
}
public void conectar(){
try{
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection con = DriverManager.getConnection("jdbc:ucanaccess://"+rutaDB,user,pass);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("Usuario"));
System.out.println(rs.getString("Contraseña"));
System.out.println(rs.getString("Permiso"));
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Main.java
public class Main {
public static void main(String args[]){
ConnectAccess ca = new ConnectAccess();
ca.setRutaDB("C:/Users/USUARIO/Desktop/usuarios.accdb");
ca.setUser(null);
ca.setPass(null);
ca.setSql("SELECT * FROM usuarios WHERE Usuario=admin");
ca.conectar();
}
}
If I remove "WHERE User = admin" if it works, but when I remove it I get the following error:
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 usuario no tiene privilegios suficientes o objeto no encontrado: ADMIN
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211)
at ConnectAccess.conectar(ConnectAccess.java:50)
at Main.main(Main.java:12)
Caused by: java.sql.SQLSyntaxErrorException: usuario no tiene privilegios suficientes o objeto no encontrado: ADMIN
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source)
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:208)
... 2 more
Caused by: org.hsqldb.HsqlException: usuario no tiene privilegios suficientes o objeto no encontrado: ADMIN
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.ExpressionColumn.checkColumnsResolved(Unknown Source)
at org.hsqldb.QueryExpression.resolve(Unknown Source)
at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 5 more