我试图使用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个
在查看错误之后,我认为它很可能是连接错误,但是在创建连接时没有显示错误,并且在服务选项卡中所有表都显示正确:
有谁知道我的问题可能是什么?
编辑:将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
再次感谢您提供的任何帮助。
答案 0 :(得分:1)
要从公共架构拖放,而不是从INFORMATION_SCHEMA拖放,解决了这个问题。这是由于3.0.0中已经解决的数据库元数据错误。