使用NetBeans IDE的数据库管理器和UCanAccess JDBC驱动程序

时间:2015-08-01 10:57:50

标签: java database ms-access netbeans ucanaccess

我试图使用NetBeans'内置数据库服务系统和UCanAccess JDBC驱动程序,以连接到MS Access数据库。从服务面板拖放表以将它们连接到我的Swing GUI中的JTable后,一切似乎都在工作,但是一旦我尝试运行程序,我就会收到以下错误:

  

线程中的异常" main" javax.persistence.PersistenceException:Exception [EclipseLink-4002](Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd):org.eclipse.persistence.exceptions.DatabaseException   内部异常:net.ucanaccess.jdbc.UcanaccessSQLException:用户缺少未找到的权限或对象:EXPERIENCETBL   错误代码:-5501   致电:选择员工,企业经验,运营经验,项目经验,R_DEXPERIENCE from PUBLIC.INFORMATION_SCHEMA.EXPERIENCETBL   查询:ReadAllQuery(referenceClass = Experiencetbl sql =" SELECT EMPLOYEEID,CORPORATEEXPERIENCE,OPERATIONALEXPERIENCE,PROJECTEXPERIENCE,R_DEXPERIENCE from PUBLIC.INFORMATION_SCHEMA.EXPERIENCETBL")       at org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:378)       在org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260)       在org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:469)       在Classes.Main_Menu.initComponents(Main_Menu.java:34)       在Classes.Main_Menu。(Main_Menu.java:19)       在Classes.Master.main(Master.java:21)   引起:Exception [EclipseLink-4002](Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd):org.eclipse.persistence.exceptions.DatabaseException   内部异常:net.ucanaccess.jdbc.UcanaccessSQLException:用户缺少未找到的权限或对象:EXPERIENCETBL   错误代码:-5501   致电:选择员工,企业经验,运营经验,项目经验,R_DEXPERIENCE from PUBLIC.INFORMATION_SCHEMA.EXPERIENCETBL   查询:ReadAllQuery(referenceClass = Experiencetbl sql =" SELECT EMPLOYEEID,CORPORATEEXPERIENCE,OPERATIONALEXPERIENCE,PROJECTEXPERIENCE,R_DEXPERIENCE from PUBLIC.INFORMATION_SCHEMA.EXPERIENCETBL")       at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)       在org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:682)       在org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)       在org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2002)       在org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)       在org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)       在org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)       在org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)       在org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)       在org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2738)       在org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2691)       at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:495)       at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1168)       在org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)       at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1127)       在org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:403)       at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1215)       at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)       在org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)       at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1786)       在org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1751)       在org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)       ......还有4个   引起:net.ucanaccess.jdbc.UcanaccessSQLException:用户缺少未找到的权限或对象:EXPERIENCETBL       at net.ucanaccess.jdbc.UcanaccessConnection.prepareStatement(UcanaccessConnection.java:510)       在org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1556)       在org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1505)       在org.eclipse.persistence.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:778)       在org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:619)       ......还有24个   引起:java.sql.SQLSyntaxErrorException:用户缺少未找到的权限或对象:EXPERIENCETBL       在org.hsqldb.jdbc.JDBCUtil.sqlException(未知来源)       在org.hsqldb.jdbc.JDBCUtil.sqlException(未知来源)       在org.hsqldb.jdbc.JDBCPreparedStatement。(未知来源)       在org.hsqldb.jdbc.JDBCConnection.prepareStatement(未知来源)       at net.ucanaccess.jdbc.UcanaccessConnection.prepareStatement(UcanaccessConnection.java:508)       ......还有28个   引起:org.hsqldb.HsqlException:用户缺少未找到的权限或对象:EXPERIENCETBL       在org.hsqldb.error.Error.error(未知来源)       在org.hsqldb.error.Error.error(未知来源)       在org.hsqldb.SchemaManager.getTable(未知来源)       在org.hsqldb.ParserDQL.readTableName(未知来源)       在org.hsqldb.ParserDQL.readTableOrSubquery(未知来源)       在org.hsqldb.ParserDQL.XreadTableReference(未知来源)       at org.hsqldb.ParserDQL.XreadFromClause(未知来源)       在org.hsqldb.ParserDQL.XreadTableExpression(未知来源)       在org.hsqldb.ParserDQL.XreadQuerySpecification(未知来源)       在org.hsqldb.ParserDQL.XreadSimpleTable(未知来源)       在org.hsqldb.ParserDQL.XreadQueryPrimary(未知来源)       在org.hsqldb.ParserDQL.XreadQueryTerm(未知来源)       在org.hsqldb.ParserDQL.XreadQueryExpressionBody(未知来源)       在org.hsqldb.ParserDQL.XreadQueryExpression(未知来源)       at org.hsqldb.ParserDQL.compileCursorSpecification(未知来源)       在org.hsqldb.ParserCommand.compilePart(未知来源)       在org.hsqldb.ParserCommand.compileStatement(未知来源)       在org.hsqldb.Session.compileStatement(未知来源)       在org.hsqldb.StatementManager.compile(未知来源)       在org.hsqldb.Session.execute(未知来源)       ......还有31个

在查看错误之后,我认为它很可能是连接错误,但是在创建连接时没有显示错误,并且在服务选项卡中所有表都显示正确:

Services Tab

有谁知道我的问题可能是什么?

编辑:将UCanAccess从2.0.9.5更新到3.0.0后,我仍然收到错误但是有点不同

[EL Info]: 2015-08-03 13:19:07.037--ServerSession(193492784)--EclipseLink, version: Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd
[EL Info]: connection: 2015-08-03 13:19:10.113--ServerSession(193492784)--file:/C:/Users/kyle/OneDrive.old/Documents/IT_PAT/IT_PAT_Program/build/classes/_C:\Users\kyle\OneDrive.old\Documents\IT_PAT\IT_PAT_Program\IT_Pat_Database.mdb;showschema=true;PU login successful
[EL Warning]: 2015-08-03 13:19:10.327--UnitOfWork(2027363825)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.0 user lacks privilege or object not found: R
Error Code: -5501
Call: SELECT EmployeeID, CorporateExperience, OperationalExperience, ProjectExperience, R&DExperience FROM PUBLIC.PUBLIC.ExperienceTbl
Query: ReadAllQuery(referenceClass=ExperienceTbl_1 sql="SELECT EmployeeID, CorporateExperience, OperationalExperience, ProjectExperience, R&DExperience FROM PUBLIC.PUBLIC.ExperienceTbl")
Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.0 user lacks privilege or object not found: R
Error Code: -5501
Call: SELECT EmployeeID, CorporateExperience, OperationalExperience, ProjectExperience, R&DExperience FROM PUBLIC.PUBLIC.ExperienceTbl
Query: ReadAllQuery(referenceClass=ExperienceTbl_1 sql="SELECT EmployeeID, CorporateExperience, OperationalExperience, ProjectExperience, R&DExperience FROM PUBLIC.PUBLIC.ExperienceTbl")
    at org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:378)
    at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260)
    at org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:469)
    at Classes.Main_Menu.initComponents(Main_Menu.java:34)
    at Classes.Main_Menu.<init>(Main_Menu.java:19)
    at Classes.Master.main(Master.java:21)
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.0 user lacks privilege or object not found: R
Error Code: -5501
Call: SELECT EmployeeID, CorporateExperience, OperationalExperience, ProjectExperience, R&DExperience FROM PUBLIC.PUBLIC.ExperienceTbl
Query: ReadAllQuery(referenceClass=ExperienceTbl_1 sql="SELECT EmployeeID, CorporateExperience, OperationalExperience, ProjectExperience, R&DExperience FROM PUBLIC.PUBLIC.ExperienceTbl")
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:682)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)
    at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2002)
    at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:299)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:694)
    at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2738)
    at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2691)
    at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:495)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1168)
    at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1127)
    at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:403)
    at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1215)
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1786)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1751)
    at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258)
    ... 4 more
Caused by: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.0 user lacks privilege or object not found: R
    at net.ucanaccess.jdbc.UcanaccessConnection.prepareStatement(UcanaccessConnection.java:509)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1556)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1505)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseCall.prepareStatement(DatabaseCall.java:778)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:619)
    ... 24 more
Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: R
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
    at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)
    at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
    at net.ucanaccess.jdbc.UcanaccessConnection.prepareStatement(UcanaccessConnection.java:505)
    ... 28 more
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: R
    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.compileStatement(Unknown Source)
    at org.hsqldb.Session.compileStatement(Unknown Source)
    at org.hsqldb.StatementManager.compile(Unknown Source)
    at org.hsqldb.Session.execute(Unknown Source)
    ... 31 more
Java Result: 1

再次感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

要从公共架构拖放,而不是从INFORMATION_SCHEMA拖放,解决了这个问题。这是由于3.0.0中已经解决的数据库元数据错误。