Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 28.09.2012
Сообщений: 161

Что лучше? А вернее, что правильнее?

29.10.2013, 11:16. Показов 1428. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу управления бд на java типа клиент/сервер по локальной сети. В качестве бд использую MS Access. Вроде ничего, но все же мучают сомнения о правильности выбора. Может лучше MySQL.
Читал книгу "Java 2. Библиотека профессионала" и наткнулся вот на что:

Не рекомендуется использовать мост JDBC/ODBC, предусмотренный в Java 2 SDK, и в еще большей степени не рекомендуется применять этот драйвер с базами данных для настольных систем, например Microsoft Access. Процедура инсталляции и конфи гурирования сложна, а кроме того, ограничения моста базы данных для настольных систем часто становятся причиной возникновения проблем. Эксперименты с такой конфигурацией вряд ли помогут изучить принципы работы реальных баз данных.

Вопрос к профессионалам java, что вы думаете по этому поводу. Какое решение приняли бы Вы. Прокоментируйте. Спасибо за выделенное время.

Добавлено через 9 часов 31 минуту
я так понимаю, на этом форуме мне не дождаться ответа?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2013, 11:16
Ответы с готовыми решениями:

Java vs HTML/CSS/JS - Что лучше?
Java: 1. Кросс платформа - WORA - один раз пишем. 1. Доступ к native API, если нужно. 2. Высокая скорость. HTML/CSS/JS: ...

Что лучше учить по книгам или
Как вы думаете как лучше начать учить Java, по книгам или придумать какой нибудь проект (например игру) , и учить создавая что нибудь (на...

Что лучше выбрать почитать про алгоритмы?
"Алгоритмы на Java" Роберт Седжвик, Кевин Уэйн или "Структуры данных и алгоритмы в Java" Роберт Лафоре?

19
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
29.10.2013, 11:20
Я бы не стал использовать Access вообще никогда и нигде при любых условиях, включающих в себя разум. Если Вам нужна локальная база, возьмите любую встраиваемую - Derby (она вообще с Java SDK идет), H2, HSQLDB.
1
0 / 0 / 2
Регистрация: 28.09.2012
Сообщений: 161
29.10.2013, 11:57  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
Я бы не стал использовать Access вообще никогда и нигде при любых условиях, включающих в себя разум. Если Вам нужна локальная база, возьмите любую встраиваемую - Derby (она вообще с Java SDK идет), H2, HSQLDB.
Но почему?
Просто для меня проще в Access. Скажите какая причина того, что большинство отказываются от нее.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
29.10.2013, 12:03
Потому что это не база данных. Это так, эмуляция. Не выдерживающая ни критики, ни нагрузок. Слепить что-то, работающее на одной машине, и то небыстро, еще можно. На большее Access не способен.
1
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
29.10.2013, 12:22
на 300 тыщ записей аксесс ложится на лопатки на простом сабселекте
1
0 / 0 / 2
Регистрация: 28.09.2012
Сообщений: 161
29.10.2013, 12:39  [ТС]
Огромное спасибо всем. Хорошо, что я выяснил все в начале создания бд и не придется переписывать таблицы и записи заново.
0
 Аватар для Gibby
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
29.10.2013, 13:59
Цитата Сообщение от mutagen Посмотреть сообщение
на 300 тыщ записей аксесс ложится на лопатки на простом сабселекте
Сие неправда. Таблица на 20 столбцов с 600 тыс. записей вполне нормально вертится. Хотя это не отменяет вышеописанных претензий к данному чуду.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
29.10.2013, 16:01
Цитата Сообщение от Gibby Посмотреть сообщение
Сие неправда.
сделай сабселект таблицы на себя - типа:
SQL
1
SELECT bla1, bla2, bla3 FROM tab1 WHERE bla1 IN (SELECT bla1 FROM tab1 WHERE bla1 = 'bla4')
0
 Аватар для Gibby
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
29.10.2013, 16:07
SQL
1
2
3
4
5
6
7
8
SELECT securityid, tradedate
  FROM tbquote
 WHERE tradedate IN
       (SELECT tradedate
          FROM tbquote
         WHERE boardid = 196
           AND securityid IN
               (SELECT securityid FROM tbquote WHERE close < 100))
Живой. Даже за вполне шустро пашет.
0
0 / 0 / 2
Регистрация: 28.09.2012
Сообщений: 161
29.10.2013, 16:32  [ТС]
Как тогда быть с созданием бд в Derby. Подскажите где можно прочитать толковую справку
0
 Аватар для Gibby
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
29.10.2013, 16:56
Цитата Сообщение от neger Посмотреть сообщение
Как тогда быть с созданием бд в Derby. Подскажите где можно прочитать толковую справку
А что с ней быть, берите и создавайте.
Вы пользуетесь какой-нибудь IDE?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
29.10.2013, 17:31
Цитата Сообщение от Gibby Посмотреть сообщение
Живой. Даже за вполне шустро пашет.
сколько элементов во внутреннем селекте 1 чтоли )))
я намекаю на то что там должно быть около полтаблицы )
0
 Аватар для Gibby
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
29.10.2013, 17:42
Ну да, если там полтаблицы уникальных значений, типа

SQL
1
2
3
4
5
SELECT *
  FROM tbquote
 WHERE close IN
       (SELECT close
          FROM tbquote WHERE close <> 100))
То тут его уносит.
Но я сколько пользуюсь с таким не сталкивался. Работает медленно, криво, но работает.
1
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
29.10.2013, 19:53
Цитата Сообщение от Gibby Посмотреть сообщение
Но я сколько пользуюсь с таким не сталкивался
обычно такая задача возникает когда надо погруппировать по какому либо критерию, я про хевинги и груп бай не упоминал, но обычно они идут следом за таким составным селектом чтобы сформировать какой либо отчётик

Добавлено через 1 минуту
Цитата Сообщение от Gibby Посмотреть сообщение
Работает медленно, криво, но работает.
ключевое слово медленно )
и чем больше записей тем медленнее, и PK -> FK и индексы ему не помогают )
0
0 / 0 / 2
Регистрация: 28.09.2012
Сообщений: 161
29.10.2013, 22:59  [ТС]
Цитата Сообщение от Gibby Посмотреть сообщение
А что с ней быть, берите и создавайте.
Вы пользуетесь какой-нибудь IDE?
Да, пользуюсь IntelliJ IDEA.

Я не могу понять. Вот в Access можно создать файл, увидеть таблицу, строки, столбцы все визуально. А в Derby есть такая возможность. Или она не нужна вообще.
0
 Аватар для Gibby
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
30.10.2013, 09:42
Вот здесь есть демо как работать с базами данных непосредственно в IntelliJ Idea: http://www.jetbrains.com/idea/... tools.html
1
0 / 0 / 2
Регистрация: 28.09.2012
Сообщений: 161
31.10.2013, 12:54  [ТС]
Прошу, заранее, прощения за тупые вопросы.
Я зашел в тупи. "Перелопатил" уже кучу сайтов и справок (уже смотрел и здесь ).
Возникли вопросы в решении которых самостоятельно не могу разобраться:
1. я установил переменную среды DERBY_INSTALL значение C:\Program Files\Java\jdk1.7.0_45\db
а системную переменную CLASSPATH значение %DERBY_INSTALL%\lib\derby.jar;%DERBY_INS TALL%\lib\derbytools.jar;
Правильно это или нет не знаю как проверить.

2. не могу сообразить как создать бд DERBY
Использую IntellIJ IDEA
Создал класс для соединения с бд
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
/**
 * Created with IntelliJ IDEA.
 * User: Admin
 * Date: 30.10.13
 * Time: 9:50
 * To change this template use File | Settings | File Templates.
 */
public class ConnToDerbyDB {
    static Connection connToDerby() throws ClassNotFoundException, SQLException {
        final String driverName = "org.apache.derby.jdbc.EmbededdDriver";
        final String URLName = "jdbc:derby:D:/Juric/Laboratoria/AIDS_Derby;create=true;";
        Class.forName(driverName);
        return DriverManager.getConnection(URLName);
    }
 
    public static void main (String [] args){
        try {
            Connection con = ConnToDerbyDB.connToDerby();
            System.out.println(con.getMetaData().getUserName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        } catch (SQLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
 
    }
 
}
Возникает ошибка
java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbededdDriver

Я не врубаюсь как создать эту бд
Знаю, что команда jdbc:derby:/Juric/Laboratoria/AIDS_Derby;create=true;
создает новую бд с именем AIDS_Derby
в то же время я понял, что ошибка в том, что этой бд не существует.

Поясните, ЧТО НЕ ТАК
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
31.10.2013, 13:30
добавь в класспас путь к жарникам от дерби, ко всем, а не только тем что вверху
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
31.10.2013, 13:33
А кто Вам сказал, что IDEA смотрит на CLASSPATH? Я же писал, почему его не рекомендуется устанавливать. Подключите библиотеку в IDEA к проекту напрямую.
1
0 / 0 / 2
Регистрация: 28.09.2012
Сообщений: 161
31.10.2013, 14:04  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
А кто Вам сказал, что IDEA смотрит на CLASSPATH? Я же писал, почему его не рекомендуется устанавливать. Подключите библиотеку в IDEA к проекту напрямую.
Спасибо большое, все получилось.

Я же писал, почему его не рекомендуется
Вы знаете, когда ничего не получается, пробуешь все варианты. Я перечитал Вашу статью, читал в java2 Библиотека профессионала, пересмотрел разные сайты - ну не получается. А оказывается, что ответ совсем рядом. Спасибо большое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2013, 14:04
Помогаю со студенческими работами здесь

Под какую БД лучше писать и через что?
Привет ВСЕМ!!! Это опять Я! Наверное, я всех достал. Но мне поставили задачу, написать программу по работе с БД, что бы было все ОК...

Что лучше использовать: ServletRequest или HttpServletRequest?
Hi, All! 1) Какие классы и в каких ситуациях в сервлетах лучше использовать: ServletRequest и ServletResponse или HttpServletRequest и...

Нюансы раздельной компиляции: где и что лучше и правильнее размещать?
Здравствуйте! Допустим, я хочу написать интерфейс класса в h-файле, а его реализацию в cpp-файле. Могу ли я в этом cpp-файле до...

Запуск процесса что лучше? что быстрее? что надежнее? Winexec CreateProcess ShellExecute
Здравствуйте , какую функцию лучше использовать для программного запуска процесса winexec CreateProcess ShellExecute ? В чем...

Что вернее dataSet или bindingSource
Добрый день, всем!!! Подскажите, пожалуйста, какай вариант вернее comboBox1.dataSource = dataSet; или ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru