Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
1

Компиляция (обычное приложение и с БД)

13.02.2020, 17:26. Показов 896. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Только-только начинаю копать JAVA, возник вопрос.
Использую Netbeans. Написал простую программку, а-ля "Hello, World". Соответственно при запуске её в IDE, она компилируется и в папке с проектом, в папке /src имеем файл myprog.java
Ну, её в дальнейшем можем переносить и запускать. С этим вроде понятно (или нет?).
Если я буду создавать не один класс, а несколько, то итоговых файлов будет всё равно один (по идее несколько же)? Что тогда можно и нужно переносить? Понятно, что запускается тот .java, где объявлен класс main. А остальные классы будут в этой же папке, они же тоже нужны для работы программы.

Сумбурно написал, но, очень надеюсь на понимание.
Собственно второй вопрос, который более важен для меня.
Хочу подключить базу данных. Зарегистрировал драйвер, создал БД, создал таблицу. Ну и т.д.
Итог какой после компиляции? Что можно и НУЖНО скопировать на флешку, например, чтобы перенести на другой компьютер, там запустить, чтобы всё работало?

P.S. В незапамятные времена писал на Delphi, в том числе и с БД. Там немного проще было. Создаешь установочный комплект, в нем есть всё. При установке приложения всё работает. Здесь, в JAVA, пока блужусь конкретно. Что и где лежит, что можно переносить, что нужно запускать

Спасибо за понимание!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2020, 17:26
Ответы с готовыми решениями:

Управляемое приложение, обычное приложение
Всем привет. Вопрос про Управляемое приложение и обычное приложение. Как понимаю разница между...

1с 8.2 Обычное приложение (интерфейс)
Можно ли как-то в командную панель формы добавить Калькулятор 1С-вский встроенный? Форма открыта...

Обычное графическое приложение виндовс
Если я правильно понимаю, то нужно при создании проекта выбрать "Классическое приложение виндовс",...

1c 8.2 Обычное приложение. Уникальность форм
Всем привет. Мне необходимо запустить обработку из документа передав в нее параметры - с этим...

16
Модератор
Эксперт Java
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,332
13.02.2020, 17:51 2
По первому вопросу достаточно загуглить всего 6 букв, 2 слова. jar и jre. Поизучай что это. Второй вопрос уже сложнее. Вообще бд это сервер и почти все бд требуют установки в систему. Вроде есть и портативные, которые достаточно подключить в виде библиотеки. Сразу советую узнать что такое maven и сборка проекта с зависимостями. Класс файлы никто не использует для запуска.
1
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
13.02.2020, 23:34  [ТС] 3
да, действительно, я ступил. Конечно, .jar запускаются

а вот с БД какая-то засада получается. Как же мне его потом с linux машины переносить на Windows?
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
14.02.2020, 15:12  [ТС] 4
а если делать через Maven, то изначально в Netbeans выбирать проект Maven -> Приложение Java
или можно Java -> Приложение Java
0
Модератор
Эксперт Java
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,332
14.02.2020, 15:23 5
RayEagle, Лучше первый вариант, а про бд посмотрите в сторону h2, можно использовать без установки в систему, просто подключить как библиотеку.
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
14.02.2020, 15:35 6
RayEagle, вот, я давал недавно ссылку, как это делать с MySQL Студенческая база прям очень все разжевано.
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
15.02.2020, 00:17  [ТС] 7
вопрос почти сюда же
подключение к БД в самой программе выглядеть должно примерно так:
Java
1
2
public static final String DB_URL = "jdbc:h2:/c:/JavaPrj/SQLDemo/db/stockExchange";
public static final String DB_Driver = "org.h2.Driver";
как прописать относительный путь к БД. Или Maven сможет помочь потом при сборке для переноса?
0
Модератор
Эксперт Java
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,332
15.02.2020, 09:55 8
В новых версиях вроде можно не регистрировать драйвер, но почемуто все гайды продолжают это делать. Я регистририую драйвер немного иначе, стандартный способ имхо слишком много исключений кидает, можно вот так сделать DriverManager.registerDriver(new Driver()); предварительно импортировав сам драйвер строчкой import org.h2.Driver; а путь к базе можно прописать 3 видами, полный путь как у вас, относительный путь от рабочей папки программы jdbc:h2:./%имя% (база будет рядом с jar файлом с именем имя.h2.db) и еще можно так jdbc:h2:~/%имя% вот тут не смог найти где хранится, еще базу можно хранить в памяти, но база будет удаляться при закрытии программы, как то так jdbc:h2:mem:%имя%
1
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
15.02.2020, 10:38 9
А исчо можно использовать hibernate
0
0 / 0 / 0
Регистрация: 16.11.2019
Сообщений: 20
15.02.2020, 13:28  [ТС] 10
если писать вот так: jdbc:h2:./%имя%
то база будет в корне домашней папки (я под Ubuntu сижу)

если писать вот так: jdbc:h2:~/%имя%
то база вообще в корень машины улетает, поэтому, наверное, Вы и не могли её найти

а я хотел, чтобы указывался относительный путь. Но, в java, похоже, в лоб так не получиться, т.к. файлы лежат по разным папкам и относительно какой считать система не знает.
Судя по всему, можно прописать абсолютный путь, а потом, при сборке Maven, пути поменяются на относительные
0
Модератор
Эксперт Java
2558 / 1094 / 375
Регистрация: 11.08.2017
Сообщений: 3,332
15.02.2020, 14:28 11
Цитата Сообщение от RayEagle Посмотреть сообщение
если писать вот так: jdbc:h2:./%имя%
то база будет в корне домашней папки (я под Ubuntu сижу)
Небольшое уточнение, смотря как запускать jar программу, там берется рабочая папка программы, в линуксе она по умолчанию домашняя папка, под виндой будет папка где находится сам jar (если запускать двойным кликом по jar)
попробуйте запустить jar из командной строки предварительно перейдя в папку с jar, база появится рядом
Цитата Сообщение от RayEagle Посмотреть сообщение
если писать вот так: jdbc:h2:~/%имя%
то база вообще в корень машины улетает, поэтому, наверное, Вы и не могли её найти
я проверял корни дисков и базы не нашел, по крайней мере под виндой

Добавлено через 56 секунд
На худой конец можно в программе получить расположение запускаемого файла и создать строку с адресом до подключения к бд
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
18.02.2020, 13:24 12
Цитата Сообщение от Goongala Посмотреть сообщение
А исчо можно использовать hibernate
причем тут хиб?
RayEagle, гуглите in memory databases
вот одна из первых ссылок
https://www.baeldung.com/java-in-memory-databases

Добавлено через 5 секунд
Цитата Сообщение от Goongala Посмотреть сообщение
А исчо можно использовать hibernate
причем тут хиб?
RayEagle, гуглите in memory databases
вот одна из первых ссылок
https://www.baeldung.com/java-in-memory-databases
0
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
18.02.2020, 17:36 13
neske, как эт причём? Через hibernate проще работать с бд, чем напрямую через JDBC
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
18.02.2020, 19:25 14
Goongala, просто как я понял рут коз тут был в выборе субд, а не в работе с ней, ну да ладно)
0
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
18.02.2020, 21:09 15
neske, а, ну, может быть и так. В который раз открываю эту тему, но так и не хватило сил полностью прочитать первый пост
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
19.02.2020, 08:36 16
Цитата Сообщение от Goongala Посмотреть сообщение
не хватило сил полностью прочитать
т.е. ты осваиваешь новую форму восприятия текстов?!! контекстное))
0
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
24.02.2020, 12:42 17
Цитата Сообщение от RayEagle Посмотреть сообщение
~/%имя%
то база вообще в корень машины улетает
~/%имя% эквивалент /home/%имя%. Каким образом в корень? Ну только если у данного юзера home замапен на корень (в самой системе). Но это, если оно так, кончено, аберрация ещё та
0
24.02.2020, 12:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2020, 12:42
Помогаю со студенческими работами здесь

Права доступа в бп 1.6 обычное приложение платформа 8.2
Чтобы войти в конфигурацию пользователю нужно назначить роли - обязательную бухгалтер или полные...

Сбой пользовательского интерфейса: обычное приложение
В режиме Предприятия в главном меню дублируются и троятся строки. Интерфейс делается конструктором...

Скопировать не записанный документ. обычное приложение
Доброго времени суток, форумчане!) Задачка: есть документ (неважно какой) с двумя формами...

Создание ВПФ под обычное приложение
Необходимо создать внешнюю печатную форму под обычное приложение. Искал в сети, но везде...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru