Использование менеджера баз данных IDE NetBeans с драйвером JDBC UCanAccess

Я пытаюсь использовать встроенную систему обслуживания базы данных NetBeans и драйвер JDBC UCanAccess для подключения к базе данных MS Access. После перетаскивания таблиц из панели служб для подключения их к моим JTables в моем графическом интерфейсе Swing все работает, однако, как только я пытаюсь запустить программу, я получаю следующую ошибку:

Исключение в потоке "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 вызов: SELECT EmployeeID, CORPORATEEXPERIENCE, OPERATIONALEXPERIENCE, PROJECTEXPERIENCE, R_DEXPERIENCE ОТ PUBLIC.INFORMATION_SCHEMA.EXPERIENCETBL Query: ReadAllQuery(referenceClass=Experiencetbl SQL ="SELECT EmployeeID, CORPORATEEXPERIENCE, OPERATIONALEXPERIENCE, PROJECTEXPERIENCE, R_DEXPERIENCE FROM PUBLIC.INFORMATION_SCHEMA.EXPERIENCETBL") в org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:37iQuery.ExuIp. 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) Вызывается: Исключение [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException Внутреннее исключение: net.ucanaccess.jdbc.UcanaccessSQLException: пользователю не хватает привилегии или объект не найден: EXPERIENCETBL Код ошибки: -5501 Вызов: ВЫБРАТЬ EMPLOYEEID, CORPORATEEXPERIENCE, OPERATIONALEXPERIENCE PROPEREXEREXPERENCE.INFORMATION_SCHEMA.) в 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:5) в org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242) в org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeMava.jersjjj.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) в org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:495) в org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:atabase.uery.ipu.exeuusese или 899) в org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1127) в org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:403).eve.executeInUnitOfWork(ObjectLevelReadQuery.java:1215) в org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896) в org.eclipse.persions.Active.Session.Session) в org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1786) в org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1751) в org.eclipse.persistence. интерна l.jpa.QueryImpl.executeReadQuery(QueryImpl.java:258) ... еще 4 Причины: net.ucanaccess.jdbc.UcanaccessSQLException: пользователю не хватает привилегии или объект не найден: EXPERIENCETBL в net.ucanaccess.jdbc.ment.canpareState () UcanaccessConnection.java:510) в org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement(DatabaseAccessor.java:1556) в org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.prepareStatement (DatabaseAccessor5):.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.jp.js. (Неизвестный источник) в орг.hsqldb.jdbc.JDBCConnection.prepareStatement (Неизвестный источник) в 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.TarserD (Неизвестный источник) по адресу org.hsqldb.ParserDQL.readTableOrSubquery (Неизвестный источник) по адресу org.hsqldb.ParserDQL.XreadTableReference (Неизвестный источник) по адресу org.hsqldb.ParserDQL.XreadFromClause (Неизвестный источник) по адресу org.harser Источник) по адресу org.hsqldb.ParserDQL.XreadQuerySpecification (Неизвестный источник) по адресу org.hsqldb.ParserDQL.XreadSimpleTable (Неизвестный источник) по адресу org.hsqldb.ParserDQL.XreadQueryPrimary (Неизвестный источник) по адресу org.heryQerbDQL в org.hsqldb.ParserDQL.XreadQueryExpressionBody (неизвестный источник) в org.hsqldb.ParserDQL.XreadQueryExpression (неизвестный источник) в org.hsqldb.ParserDQL.compileCursorSpecification(неизвестный источник) в org.hsqldb.ParserCommand.compilePart(неизвестный источник) в org.hsqldom.pile 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

Еще раз спасибо за любую помощь, которую вы можете предоставить.

1 ответ

Решение

Перетаскивание из общедоступной схемы, а не из INFORMATION_SCHEMA, решает проблему. Это связано с ошибкой метаданных базы данных, которая была решена в 3.0.0.

Другие вопросы по тегам