Изучаю SQL и, в принципе, понимаю как создать базу данных в MySQL. Примерно понимаю как написать серверное приложение. Для изучения Tomcat, наверное, серверное приложение и база данных должны на нём крутиться.
Суть вопроса: как серверное приложение и базу данных разместить на Tomcat’e?
Я знаю, где у меня исходники и *.classes серверного приложения и не знаю, где сохраняется база данных, если я работаю через консоль MySQL.
Как все это запустить на моём PC под Windows 10 Pro?
Отслеживать
1,745 9 9 золотых знаков 19 19 серебряных знаков 28 28 бронзовых знаков
задан 1 ноя 2015 в 12:23
531 3 3 золотых знака 5 5 серебряных знаков 13 13 бронзовых знаков
Покажите, что у Вас уже реализовано.
1 ноя 2015 в 13:08
по-большому счёту ничего, я так себе планирую. Сейчас читаю HEAD FIRST SQL, чтобы познакомиться с БД. Через пару-тройку дней готов приступать к написанию кода. Ещё волнует вопрос как код БД коммитить на GitHab. IntellijIdea у меня настроена, но я не представляю себе в ней писать код для БД
Уроки C# .NET Windows Forms / #1 — Создание приложения на C# с SQL (базами данных)
1 ноя 2015 в 13:59
серверное приложение и база данных должны на нём крутиться. — не совсем так. Tomcat — это веб-сервер, он отвечает за передачу HTTP-запросов вашему приложению, это именно он слушает какой-то там порт и отсекает негодные запросы. Сама же база данных вертится на своем отдельном сервере, если только это не file-based / in-memory база данных, которая живет в конкретном файле или памяти JVM соответственно.
1 ноя 2015 в 14:01
А вот это уже интереснее. Можете детальнее объяснить как это все должно выглядеть, если вы поняли мою задумку? Tomcat — это веб-сервер, он отвечает за передачу HTTP-запросов вашему приложению — это означает, что клиент обращается с запросом к Tomcat, тот в свою очередь к серверному(веб?) приложению, которое обрабатывает запрос и извлекает необходимые данные с базы данных и отдает TOMCAT, который в свою очередь отправляет ответ клиентскому приложению?
1 ноя 2015 в 14:04
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Итак, в целях обучения можете сделать Rest сервис. Работать это будет примерно следующим образом:
- Юзеры через клиент(Веб браузер например) отправляет get или post запрос на ваш сервер.
- Сервер обрабатывает http запрос клиента и формирует запрос к БД.
- Затем сервер отправляет ответ(response), например, в виде JSON.
Теперь о технологиях: Rest сервис можно запросто сделать с помощью Spring (http://spring-projects.ru/guides/rest-service/) Для связи с БД используйте JDBC(так же огромное количество русских уроков)
Все это крутится на Tomcat’e А интерфейс это уже отдельная тема. Надеюсь, все доступно объяснил, если есть вопросы, с радостью отвечу.
PS Для подключения к БД используйте (Более подробно почитайте в гугле «JDBC mysql connection»):
Class.forName(«com.mysql.jdbc.Driver»); Connection conn = null; conn = DriverManager.getConnection(«jdbc:mysql://hostname:port/dbname»,»username», «password»);
Если клиенты отправляют запросы на сервер, то это отправляют Tomcat’y или серверному приложению, которое мне нужно написать?
C# и ACCESS. Пример работы с ACCESS на Windows Forms C#.
Да, Tomcat’y, он следит за запросами(если можно так выразиться), а ваше приложение(сервер) их обрабатывает, выглядит это примерно так (если без спринга):
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException < // Тут запросы к БД, и другая логика >
Этот фрагмент кода взят из реализации Сервлета, Если вы не знаете, что это очень рекомендую почитать, без сервлетов в j2ee никуда.
Отслеживать
ответ дан 1 ноя 2015 в 18:43
Vadim Beskrovnov Vadim Beskrovnov
90 1 1 серебряный знак 7 7 бронзовых знаков
Спасибо за ответ. Что-то подобное я и хочу сделать. Все это крутится на Tomcat’e — вот это не знаю как реализовать. Если клиенты отправляют запросы на сервер, то это отправляют Tomcat’y или серверному приложению, которое мне нужно написать? Со Spring пока не знаком и не думаю, что охвачу это все вместе. Хотел сделать с помощью Hibernate, но тоже ещё рано, так как сначала нужно сделать ручками всё.
Меня сейчас интересует где моя БД, которую я заполняю через консоль и как её и серверное приложение поставить на Tomcat. В интернетах пока не нашёл ответа.
1 ноя 2015 в 18:55
Отлично! Теперь я понимаю, что ещё и с сервлетами нужно познакомиться, чтобы сложилась более полная картина что и к чему нужно прикрутить. А если вернуться к вопросу о БД. Вот второй день изучаю SQL и пишу в консоли MySQL. Где сохраняется эта БД?
Как с ней работать из серверного приложения, которое должно обрабатывать клиентские запросы?
1 ноя 2015 в 19:36
«jdbc:mysql://hostname:port/dbname» вот эту строку в getConnection надо заменить на jdbc:mysql://localhost:3306/MyDataBaseName, где MyDataBaseName — имя вашей базы данных, localhost значит, что сервер БД стоит на той же машине, а 3306 это порт с которым работает MySql
1 ноя 2015 в 19:58
Для подключения базы данных уже с давних пор предлагается использовать ресурсы сервера приложений. Зачем этот вот DriverManager? Только лишь для ознакомления с основами JDBC? Но это не тот путь, который стоит использовать с tomcat и пр.
2 ноя 2015 в 2:59
База сохраняется на сервере базы данных. И клиенту точное расположение файлов базы знать совершенно незачем, и не предусмотрено SQL такое знание. Для MySQL на Windows это может быть, например, папка C:Program FilesMySQLMySQL Server 5.6data. Чем это может помочь даже не представляю.
2 ноя 2015 в 3:12
Если достаточно хорошо знаете аглицкий для чтения мануалов, то лучше почитать документацию к tomcat, javaee.
На русском легко найти про java, про servlet-ы, про jdbc отдельно. А вместе не попадалось никогда.
Сначала подключение к БД описывается где-то в контексте tomcat-а. Есть варианты как именно, в какой файл записать эти строки (см. документацию):
Обратите внимание на url. Правильно догадались, что надо прописать jdbc:mysql://hostname:port/dbname
Считайте, что url и есть база данных. Это адрес сервера (hostname:port) и имя базы, которое дали ей при созданий. Там она и хранится.
Вполне возможно и у tomcat-а есть web-морда, в которой можно создать такое подключение, вместо ручного написания xml. Не знаю. У других серверов есть такая возможность.
Потом в WEB-INF/web.xml web-приложения помещается ссылка на этот ресурс:
MySQL Test App DB Connection jdbc/TestDB javax.sql.DataSource Container
Возможно не всё тут правда, но как-то так.
Да. Длинновато получается. Но ничего не поделаешь — разработчику для tomcat-ов всяких надо знать все эти конфигурации (называются дескрипторы развёртывания или deployment descriptor) стандартные из javaee и специфические для конкретного сервера приложений. Зато подключение к базе задаётся не железно в коде, а гибко в конфигурации. Да и кода уже никакого нет, так — одна аннотация. Более-менее приличные IDE иногда упрощают написание этой конфигурации.
Источник: ru.stackoverflow.com
Связываем ASP.NET Core MVC с MS SQL Server (Entity Framework Core)
Как связать программу с базой данных
Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core
Последнее обновление: 31.10.2015
Для хранения данных приложению нужна база данных. Мы можем использовать различные СУБД, но, как правило, в качестве базы данных в связке с ASP.NET MVC используется база данных MS SQL Server, на примере которого мы и посмотрим весь процесс создания БД и подключения к ней.