|
17 / 3 / 0
Регистрация: 14.12.2010
Сообщений: 77
|
||||||
Работа с библиотекой jackcess15.05.2012, 00:21. Показов 4310. Ответов 9
Метки нет (Все метки)
Доброго времени суток. Хочу написать программу, которая являла бы собой базу данных. Так, как нету времени разбираться c mysql, решил использовать библиотеку jackcess. Скачал джар-файлик. создал новую библиотеку, подключил к проекту. в папке проекта создал базу данных через Access с расширением .mdb. Пробую добавить новую таблицу при помощи вот такого кусочка кода:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory Error
at com.healthmarketscience.jackcess.Databas e.<clinit>(Database.java:92)
at database.Window.jButton1MouseClicked(Win dow.java:90) at database.Window.access$000(Window.java:2 2) at database.Window$1.mouseClicked(Window.ja va:53) at java.awt.AWTEventMulticaster.mouseClicke d(AWTEventMulticaster.java:270) at java.awt.Component.processMouseEvent(Com ponent.java:6508) at javax.swing.JComponent.processMouseEvent (JComponent.java:3321) at java.awt.Component.processEvent(Componen t.java:6270) at java.awt.Container.processEvent(Containe r.java:2229) at java.awt.Component.dispatchEventImpl(Com ponent.java:4861) at java.awt.Container.dispatchEventImpl(Con tainer.java:2287) at java.awt.Component.dispatchEvent(Compone nt.java:4687) at java.awt.LightweightDispatcher.retargetM ouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMo useEvent(Container.java:4501) at java.awt.LightweightDispatcher.dispatchE vent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Con tainer.java:2273) at java.awt.Window.dispatchEventImpl(Window .java:2713) at java.awt.Component.dispatchEvent(Compone nt.java:4687) at java.awt.EventQueue.dispatchEventImpl(Ev entQueue.java:707) at java.awt.EventQueue.access$000(EventQueu e.java:101) at java.awt.EventQueue$3.run(EventQueue.jav a:666) at java.awt.EventQueue$3.run(EventQueue.jav a:664) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$1.doInter sectionPrivilege(ProtectionDomain.java:7 6) at java.security.ProtectionDomain$1.doInter sectionPrivilege(ProtectionDomain.java:8 7) at java.awt.EventQueue$4.run(EventQueue.jav a:680) at java.awt.EventQueue$4.run(EventQueue.jav a:678) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$1.doInter sectionPrivilege(ProtectionDomain.java:7 6) at java.awt.EventQueue.dispatchEvent(EventQ ueue.java:677) at java.awt.EventDispatchThread.pumpOneEven tForFilters(EventDispatchThread.java:211 ) at java.awt.EventDispatchThread.pumpEventsF orFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsF orHierarchy(EventDispatchThread.java:117 ) at java.awt.EventDispatchThread.pumpEvents( EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents( EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDi spatchThread.java:90) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader$1.run(URLClassLo ader.java:366) at java.net.URLClassLoader$1.run(URLClassLo ader.java:355) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(URLCla ssLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoa der.java:423) at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoa der.java:356) ... 36 more - можете подсказать как исправить ошибку? или же подсказать подобный способ создания или подключения базы данных для простейших с ней манипуляций?
0
|
||||||
| 15.05.2012, 00:21 | |
|
Ответы с готовыми решениями:
9
Jackcess Java insert Работа с GD библиотекой Работа с библиотекой |
|
|
||||||
| 15.05.2012, 02:22 | ||||||
|
ошибка у тебя - не может найти класс org/apache/commons/logging/LogFactory
это значит ты не добавил в пути библиотеку log4j поэтому либо добавь, либо выкинь её из импортов и юзай системный логгер а вообще ориентироваться на аксес не стоит если хочешь кросплатформенность, хороший вариант это бд derby от апачей подключаещь derby.jar к путям и по необходимости локализационный jar и можно пользоваться как полноценной БД вот пример как юзать её в эмбед режиме
1
|
||||||
|
17 / 3 / 0
Регистрация: 14.12.2010
Сообщений: 77
|
|
| 15.05.2012, 12:18 [ТС] | |
|
mutagen, - мм, сейчас попробую разобраться. правда пока ничего не понял. но это пока.) спасибо.
Добавлено через 4 часа 1 минуту mutagen, - я пробовал откомпилировать ваш код. вставил в путь свою базу данных, но при выполнении выбивает ошибку: run: Вывод
Loading the Derby jdbc driver...
java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver Loading the Derby jdbc driver... Table dropped Loading the Derby jdbc driver... Loading the Derby jdbc driver... Table created Loading the Derby jdbc driver... at java.net.URLClassLoader$1.run(Loading the Derby jdbc driver... URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLo ader.java:355) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(URLCla ssLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoa der.java:423) at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoa der.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at main.Main$DerbyRun.getConnection(Main.ja va:26) at main.Main.main(Main.java:12) java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver at java.net.URLClassLoader$1.run(URLClassLo ader.java:366) at java.net.URLClassLoader$1.run(URLClassLo ader.java:355) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(URLCla ssLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoa der.java:423) at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoa der.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at main.Main$DerbyRun.getConnection(Main.ja va:26) at main.Main$DerbyRun.dropTables(Main.java: 38) at main.Main.main(Main.java:12) java.lang.NullPointerException at main.Main$DerbyRun.execSQL(Main.java:96) at main.Main$DerbyRun.dropTables(Main.java: 38) at main.Main.main(Main.java:12) java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver at java.net.URLClassLoader$1.run(URLClassLo ader.java:366) at java.net.URLClassLoader$1.run(URLClassLo ader.java:355) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(URLCla ssLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoa der.java:423) at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoa der.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at main.Main$DerbyRun.getConnection(Main.ja va:26) at main.Main.main(Main.java:13) java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver at java.net.URLClassLoader$1.run(URLClassLo ader.java:366) at java.net.URLClassLoader$1.run(URLClassLo ader.java:355) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(URLCla ssLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoa der.java:423) at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoa der.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at main.Main$DerbyRun.getConnection(Main.ja va:26) at main.Main$DerbyRun.createTables(Main.jav a:112) at main.Main.main(Main.java:13) java.lang.NullPointerException at main.Main$DerbyRun.execSQL(Main.java:96) at main.Main$DerbyRun.createTables(Main.jav a:112) at main.Main.main(Main.java:13) java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver at java.net.URLClassLoader$1.run(URLClassLo ader.java:366) at java.net.URLClassLoader$1.run(URLClassLo ader.java:355) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(URLCla ssLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoa der.java:423) at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoa der.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at main.Main$DerbyRun.getConnection(Main.ja va:26) at main.Main.main(Main.java:14) java.lang.NullPointerException at main.Main$DerbyRun.insertRows(Main.java: 68) at main.Main.main(Main.java:14) java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver at java.net.URLClassLoader$1.run(URLClassLo ader.java:366) at java.net.URLClassLoader$1.run(URLClassLo ader.java:355) at java.security.AccessController.doPrivile ged(Native Method) at java.net.URLClassLoader.findClass(URLCla ssLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoa der.java:423) at sun.misc.Launcher$AppClassLoader.loadCla ss(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoa der.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at main.Main$DerbyRun.getConnection(Main.ja va:26) at main.Main.main(Main.java:15) java.lang.NullPointerException at main.Main$DerbyRun.selectRows(Main.java: 44) at main.Main.main(Main.java:15) ПОСТРОЕНИЕ УСПЕШНО ЗАВЕРШЕНО (общее время: 0 секунд) можете объяснить как ее устранить?
0
|
|
|
|
|
| 15.05.2012, 12:25 | |
|
внутри папки с jdk есть папка db/lib/
надо добавить jar-ки в путь вот тут как это сделать https://www.cyberforum.ru/java... ost2880460
0
|
|
|
17 / 3 / 0
Регистрация: 14.12.2010
Сообщений: 77
|
|||
| 15.05.2012, 14:12 [ТС] | |||
|
mutagen, - благодарю. разобрался.
а как использовать эти функции в форме? допустим чтобы потом реализовать добавление значений в таблицу? где размещать:
0
|
|||
|
17 / 3 / 0
Регистрация: 14.12.2010
Сообщений: 77
|
|
| 16.05.2012, 12:01 [ТС] | |
|
mutagen, - ех... ну ладно. буду что-то искать.
Добавлено через 19 часов 58 минут - а как произвести удаление строчки из базы данных?
0
|
|
|
17 / 3 / 0
Регистрация: 14.12.2010
Сообщений: 77
|
||||||
| 16.05.2012, 22:34 [ТС] | ||||||
|
turbanoff, - спасибо.
еще вопрос - как можно вывести столбец #? или этого нельзя сделать? если нет, то есть в Derby тип данных счетчик? Добавлено через 50 минут - и еще один вопрос - при попытке записи в таблицу, выбивает ошибку. вот код записи:
java.sql.SQLSyntaxErrorException
java.sql.SQLSyntaxErrorException: Столбец 'NAME' либо не содержится ни в одной из таблиц из списка FROM, либо появляется в спецификации объединения и находится вне области спецификации объединения, либо появляется в конструкции HAVING и не содержится в списке GROUP BY. Если это оператор CREATE или ALTER TABLE, то 'NAME' не является столбцом в таблице назначения.
at org.apache.derby.client.am.SQLExceptionF actory40.getSQLException(Unknown Source) at org.apache.derby.client.am.SqlException. getSQLException(Unknown Source) at org.apache.derby.client.am.Connection.pr epareStatement(Unknown Source) at main.NJ.jButton3MouseClicked(NJ.java:209 ) at main.NJ.access$200(NJ.java:16) at main.NJ$3.mouseClicked(NJ.java:86) at java.awt.AWTEventMulticaster.mouseClicke d(AWTEventMulticaster.java:270) at java.awt.Component.processMouseEvent(Com ponent.java:6508) at javax.swing.JComponent.processMouseEvent (JComponent.java:3321) at java.awt.Component.processEvent(Componen t.java:6270) at java.awt.Container.processEvent(Containe r.java:2229) at java.awt.Component.dispatchEventImpl(Com ponent.java:4861) at java.awt.Container.dispatchEventImpl(Con tainer.java:2287) at java.awt.Component.dispatchEvent(Compone nt.java:4687) at java.awt.LightweightDispatcher.retargetM ouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMo useEvent(Container.java:4501) at java.awt.LightweightDispatcher.dispatchE vent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Con tainer.java:2273) at java.awt.Window.dispatchEventImpl(Window .java:2713) at java.awt.Component.dispatchEvent(Compone nt.java:4687) at java.awt.EventQueue.dispatchEventImpl(Ev entQueue.java:707) at java.awt.EventQueue.access$000(EventQueu e.java:101) at java.awt.EventQueue$3.run(EventQueue.jav a:666) at java.awt.EventQueue$3.run(EventQueue.jav a:664) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$1.doInter sectionPrivilege(ProtectionDomain.java:7 6) at java.security.ProtectionDomain$1.doInter sectionPrivilege(ProtectionDomain.java:8 7) at java.awt.EventQueue$4.run(EventQueue.jav a:680) at java.awt.EventQueue$4.run(EventQueue.jav a:678) at java.security.AccessController.doPrivile ged(Native Method) at java.security.ProtectionDomain$1.doInter sectionPrivilege(ProtectionDomain.java:7 6) at java.awt.EventQueue.dispatchEvent(EventQ ueue.java:677) at java.awt.EventDispatchThread.pumpOneEven tForFilters(EventDispatchThread.java:211 ) at java.awt.EventDispatchThread.pumpEventsF orFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsF orHierarchy(EventDispatchThread.java:117 ) at java.awt.EventDispatchThread.pumpEvents( EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents( EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDi spatchThread.java:90) Caused by: org.apache.derby.client.am.SqlException: Столбец 'NAME' либо не содержится ни в одной из таблиц из списка FROM, либо появляется в спецификации объединения и находится вне области спецификации объединения, либо появляется в конструкции HAVING и не содержится в списке GROUP BY. Если это оператор CREATE или ALTER TABLE, то 'NAME' не является столбцом в таблице назначения. at org.apache.derby.client.am.Statement.com pleteSqlca(Unknown Source) at org.apache.derby.client.net.NetStatement Reply.parsePrepareError(Unknown Source) at org.apache.derby.client.net.NetStatement Reply.parsePRPSQLSTTreply(Unknown Source) at org.apache.derby.client.net.NetStatement Reply.readPrepareDescribeOutput(Unknown Source) at org.apache.derby.client.net.StatementRep ly.readPrepareDescribeOutput(Unknown Source) at org.apache.derby.client.net.NetStatement .readPrepareDescribeOutput_(Unknown Source) at org.apache.derby.client.am.Statement.rea dPrepareDescribeOutput(Unknown Source) at org.apache.derby.client.am.PreparedState ment.readPrepareDescribeInputOutput(Unkn own Source) at org.apache.derby.client.am.PreparedState ment.flowPrepareDescribeInputOutput(Unkn own Source) at org.apache.derby.client.am.PreparedState ment.prepare(Unknown Source) at org.apache.derby.client.am.Connection.pr epareStatementX(Unknown Source) ... 36 more
0
|
||||||
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 18.05.2012, 17:54 | |
|
akira_akai, в таблице TV нет поля Name
0
|
|
| 18.05.2012, 17:54 | |
|
Помогаю со студенческими работами здесь
10
Работа с библиотекой
C++ Qt работа с библиотекой QtSerialPort Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|