Java соединение с базой данных MySQL


Оглавление (нажмите, чтобы открыть):

SBP-Program

Java и MySQL

Рассмотрим пример, который свяжет Java-приложение с СУБД MySQL (Java MySQL). Работать будем в среде Eclipse.

Что нам понадобится

Где взять Eclipse? Eclipse скачать можно с www.eclipse.org Бесплатно.

Java. Java должна быть установлена до установки Eclipse.

Где взять Java? Java скачать можно с www.oracle.com бесплатно.

Где взять MySQL? MySQL скачать можно с www.mysql.com. Бесплатно.

Ещё понадобится JDBC драйвер MySQL, который на сайте называется MySQL Connector/J 5.0.8 (если есть более новый, то берите его), а загруженный на компьютер файл драйвера называется mysql-connector-java-5.0.8.

Где взять MySQL Connector/J? MySQL Connector/J скачать можно с https://dev.mysql.com/downloads/. Бесплатно.

Драйвер MySQL Connector/J нужен для связи Java – приложения и MySQL базы данных.

MySQL

Установите MySQL. Я при установке не менял никаких настроек, предложенных мастером. Результат на картинке:

MySQL Connector/J

Распакуйте дистрибутив mysql-connector-java-5.0.8 в любой каталог. Я распаковал его в папку MySQL_Connector диска «H», получил вот что:

Файл mysql-connector-java-5.0.8-bin из распакованного дистрибутива скопируйте в папку (в моём случае) H:\Program Files\Java\jre1.6.0_02\lib\ext, а вы в свою папку ext:

Java+ MySQL Connector/J + MySQL

Начинаем работать с Eclipse. Открываем Eclipse SDK. В правом верхнем углу должна быть кнопка Java, как на рисунке. Если этого нет, тогда Window -> Open Perspective -> Java.

Создадим проект: File->New->Java Project или File->New->Project. и в открывшемся окне выбираем Java Project, жмём Next. В поле Project Name укажем MySQLProject, жмём Finish. Слева в виде Package Explorer получаем:

Правой кнопкой по src, в откывшемся меню выбираем New->Package. Имя пакета в поле Name установим app. Получаем:

Скачайте базу java-mysql (1Кб), распакуйте и поместите её в папку data севера MySQL. У меня получилось так:

Итак, что мы имеем? Мы создали проект MySQLProject, установили драйвер в jre/lib/ext, создали MySQL базу данных java-mysql и поместили её по адресу data сервера MySQL. Теперь мы готовы сделать приложение для работы с MySQL базой.

Правой кнопкой по пакету app -> New -> Class вводим имя класса KApplication, установим флаг public static void main. Полученный класс сделаем наследником JFrame и добавим поле serialVersionUID:

Перейдём к модели, которая будет хранить информацию из базы данных.

AbstractTableModel

Добавим в пакет app класс модели KModel: правой кнопкой по пакету app -> New -> Class

Изменим код, созданный мастером следующим образом:

Класс модели мы унаследовали от абстрактного класса AbstractTableModel, переопределив объявленные в нём методы и добавив два своих метода для работы с данными, хранящимися в модели: setTableData и getTableData.

Настало время создать класс, который и будет соединять нас с базой данных.

Java + MySQL

Напомню, наша база java-mysql работает под управлением СУБД MySQL, JDBC драйвер для этой СУБД называется MySQL Connector/J. Создадим класс, который соединит нас с базой данных. Правой кнопкой по пакету app -> New -> Class. Имя класса KFDB:

Изменим код класса KFDB, созданный мастером так:

Мы объявили в конструкторе класса параметры:

driver – это имя нашего драйвера MySQL Connector/J;

url – адрес базы данных, у нас это адрес базы java-mysql;

login – имя пользователя;

В блоке try/catch загружаем статическим методом forName дравер для базы данных. Статическим методом getConnection устанавливаем соединение с нашей базой данных. Класс DriverManager управляет работой драйверов. Если драйвер, в нашем случае MySQL Connector/J, не обнаружится, то будет выброшено исключение ClassNotFoundException, а если DriverManager не сможет соединиться с нашей базой java-mysql, то будет выброшено исключение SQLException.

Поле con, имеющее тип Connection, можно представить как телефонный провод, по которому информация будет перетекать из нашего приложения в базу данных и обратно.

Получим по этому проводу информацию из базы данных. Введём поле st типа Statement. Это поле даст нам возможность обратиться к базе данных с каким-то конкретным запросом. Определим метод getNomen, который вернёт информацию из базы данных:

В методе getNomen создаём объект Statement st, он позволит нам сделать запрос к базе, сам запрос выполняется методом executeQuery, который возвращает набор данных в виде объекта ResultSet rs. Этот набор данных можно представить как таблицу из базы данных, содержащую сами данные и информацию об этой таблице, например, сколько столбцов имеется в таблице. Информацию об устойстве полученного набора данных извлечём из объекта ResultSetMetaData rsmd. Нас интересует количество колонок в наборе данных. Для этого пишем строку: int cols = rsmd.getColumnCount(). Метод rs.next() перемещает нас по строкам набора данных. Получив первую строку, в цикле for извлекаем значение из каждой ячейки строки методом rs.getObject(i) и добавляем его в вектор newVector. Сформированный таким образом newVector добавляем в результирующий вектор retVector. Вектор retVector становится изображением набора данных rs.

Вернёмся к главному окну приложения,т.е. к классу KApplication, и приведём его код к виду(не забудьте указать вашего пользователя и пароль (у меня «root» и «masterkey» соответственно)):


Компилируем и запускаем: правой кнопкой по классу KApplication -> Run As -> Java Application, получаем:

Подключение Java к базе данных MySQL

Как вы подключаетесь к базе данных MySQL в Java?

DriverManager — довольно старый способ делать вещи. Лучше всего получить DataSource , либо посмотрев, что ваш контейнер сервера приложений уже настроен для вас:

или создать экземпляр и настроить его непосредственно из драйвера базы данных:

а затем получить от него соединения, такие же, как указано выше:

Вот пошаговое объяснение, как установить MySQL и JDBC и как его использовать:

Download и установите сервер MySQL. Просто делайте это обычным способом. Помните номер порта, когда вы его изменили. Он по умолчанию 3306 .

Download драйвер JDBC и поместив путь к классам, извлеките ZIP файл и поместите содержащий JAR файл в пути к классам. Спецификатор JDBC для конкретного поставщика — это конкретная реализация JDBC API (учебник здесь).

Если вы используете IDE, например Eclipse или Netbeans, вы можете добавить его в путь к классам, добавив JAR файл в качестве библиотеки в путь сборки в свойствах проекта.

Если вы делаете это «plain vanilla» в командной консоли, вам нужно указать путь к JAR файлу в аргументе -cp или -classpath при выполнении вашего Java-приложения.

. находится там, чтобы добавить текущий каталог в путь к классам, чтобы он мог найти com.example.YourClass , а ; — это разделитель класса, как и в Windows. В Unix и клоны следует использовать : .

Создайте database в MySQL. Позвольте создать базу данных javabase . Вы, разумеется, хотите World Domination, поэтому также используйте UTF-8.

Создать пользователя для Java и grant он имеет доступ к. Просто потому, что использование root является плохой практикой.

Да, java — это имя пользователя, а password — пароль здесь.

Определить URL-адрес JDBC. Для подключения базы данных MySQL с использованием Java вам нужен URL-адрес JDBC в следующем синтаксисе:

hostname : имя хоста, в котором установлен сервер MySQL. Если он установлен на том же компьютере, где вы запускаете Java-код, вы можете просто использовать localhost . Он также может быть IP-адресом, например 127.0.0.1 . Если вы столкнулись с проблемами подключения и с помощью 127.0.0.1 вместо localhost решили это, у вас возникла проблема в конфигурации вашей сети/DNS/хоста.

port : порт TCP/IP, в котором слушает сервер MySQL. Это по умолчанию 3306 .

databasename : имя базы данных, к которой вы хотите подключиться. Это javabase .

Итак, конечный URL-адрес должен выглядеть так:

Проверьте подключение к MySQL с помощью Java. Создайте простой Java-класс с помощью метода main() для проверки соединения.

Если вы получаете SQLException: No suitable driver , то это означает, что либо драйвер JDBC не был полностью загружен, либо неправильный URL JDBC (т.е. он не был распознан ни одним из загруженных драйверов). Как правило, драйвер JDBC 4.0 должен быть автоматически загружен, когда вы просто бросаете его в путь к классам времени выполнения. Чтобы исключить одно и другое, вы всегда можете вручную загрузить его, как показано ниже:

Обратите внимание, что вызов newInstance() не. Это просто исправить старую и багги org.gjt.mm.mysql.Driver . Объяснение здесь. Если эта строка выбрасывает ClassNotFoundException , то JAR файл, содержащий класс драйвера JDBC, просто не помещается в путь к классам.

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

Если вы получаете SQLException: Connection refused или Connection timed out или специфический для MySQL CommunicationsException: Communications link failure , то это означает, что БД недоступно. Это может иметь одну или несколько следующих причин:

  • Неверный IP-адрес или имя хоста в URL-адрес JDBC.
  • Имя хоста в URL-адресе JDBC не распознается локальным DNS-сервером.
  • Номер порта отсутствует или неверен в URL-адресе JDBC.
  • Сервер DB не работает.
  • Сервер DB не принимает соединения TCP/IP.
  • У сервера БД закончились соединения.
  • Что-то между Java и DB блокирует соединения, например. брандмауэр или прокси.

Чтобы решить тот или иной, выполните следующие советы:

  • Проверьте и протестируйте их с помощью ping .
  • Обновите DNS или используйте IP-адрес в URL-адрес JDBC.
  • Проверьте его на основе my.cnf базы данных MySQL.
  • Запустите БД.
  • Убедитесь, что mysqld запущен без —skip-networking option .
  • Перезагрузите базу данных и исправьте свой код соответственно, чтобы он закрывал соединения в finally .
  • Отключите брандмауэр и/или настройте брандмауэр/прокси для разрешения/пересылки порта.

Обратите внимание, что закрытие Connection имеет значение чрезвычайно. Если вы не закрываете соединения и не получаете их много за короткое время, тогда в базе данных могут отсутствовать соединения, и ваше приложение может сломаться. Всегда приобретайте Connection в try-with-resources statement. Или, если вы еще не на Java 7, явно закройте его в finally блока try-finally . Закрытие в finally заключается в том, чтобы обеспечить закрытие, а также в случае исключения. Это также относится к Statement , PreparedStatement и ResultSet .

Это было так далеко, что касается подключения. Вы можете найти здесь более продвинутое руководство по загрузке и хранению полнофункциональных объектов модели Java в базе данных с помощью базового класса DAO.

Подключение Java MySQL

В этом разделе мы представляем, как использовать Java для использования JDBC для подключения базы данных MySQL.

Java необходимо подключиться к пакету драйверов MySQL Загрузите последнюю версию: http://dev.mysql.com/downloads/connector/j/

pobj , полученный после извлечения файла библиотеки банку, а затем импортировать файл библиотеки в соответствующем проекте.

Jar пакет , который вы можете скачать сайт обеспечивает: MySQL-разъем-Java-5.1.39-bin.jar

В этом примере используется Eclipse, импортировать пакет банку:

Создание тестовых данных

Далее мы создаем w3big в базе данных MySQL, создавать веб-сайты и таблицы данных, структура таблицы выглядит следующим образом:

Вставьте некоторые данные:

Таблица данных показано ниже:


Подключение к базе данных

В следующем примере используется JDBC для подключения базы данных MySQL, обратите внимание, что некоторые данные, такие как имена пользователей, пароли необходимо настроить среду разработки:

Примеры реализации указанных выходных результатов являются следующие:

Подключаемся к базе данных с помощью JDBC. Выборка данных (Java)

В данной статье рассматриваем возможность подключение к БД с помощью JDBC.

Что такое JDBC

JDBC — это стандарт взаимодействия Java с различными СУБД, входящий в пакет java.sql.

Позволяет использовать один интерфейс для подключения к любым базам данных, для которых созданы JDBC коннекторы.

Здесь реализован конструктор, в котором осуществляется подключение к базе, метод select, выполняющий запрос и возвращающий результат в виде объекта ResultSet, и метод close, закрывающий соединение.

Так же мы избежали обработку исключений в конструкторе с помощью throws SQLException, ClassNotFoundException.

Можно поступить иначе: в блоке try создать подключение, а в блоке catch обработать исключения, выброшенные JDBC.

Я часто использую multicatch, имеющий следующий вид:

catch (SQLException | ClassNotFoundException ex)

Чтобы использовать multicatch необходимо в среде разработки поднять уровень языка до 8.

Если используете Maven, подойдет следующая конструкция:

Здесь говориться о том, что используется Main класс с именем Main, собираться проект будет в единый jar, уровень языка — 8.

Работать с объектом ResultSet можно следующим образом:

Java: соединение с базой данных MySQL

Мы приступаем к одному из очень важных разделов программирования на Java — работа с базами данных. Данные являются наверно наиглавнейшей составляющей программирования и вопрос их хранения крайне актуален. Не буду больше говорить о важности этого вопроса — тут можно писать много-много-много разных интересных слов.

Сервер баз данных

Сама идея сервера баз данных и СУБД в виде отдельной программы появилось по совершенно очевидным причинам. Базы данных мгновенно стали МНОГОПОЛЬЗОВАТЕЛЬСКИМИ. Данные нужны всем и возможность одновременного доступа к ним является очевидной. Проблема базы данных в виде обычного файла заключается в том, что к этому файлу будет обращаться сарзу много программ, каждая из которых захочет внести изменения или получить данные. Организовать такой доступ на уровне файловой системы — по сути, невыполнимая задача.
Во-первых — файл должен быть доступен всем пользователям, что требует перекачку данных по сети и хранение этого файла где-то на сетевом диске. Большие объемы данных по сети (пусть даже с высокой скоростью) — кроме слова “отвратительно” у меня ничего не приходит на ум.
Во-вторых — попытка одновременной записи в файл несколькими программами обречена на провал. Для организации такого доступа обычной файловой системы явно не достаточно.
В-третьих — организация прав доступа к тем или иным данным тоже становится непосильной задачей.
В-четвертых — надо “разруливать” конфликты при одновременном доступе к одним и тем же данным.
После небольшого анализа, кроме этих вопросов, можно увидеть еще немалое количество проблем, которые надо решить при мультипользовательском доступе к данным.
В итоге было принято (и реализовано) вполне здравое решение — написать специальную программу, которая имеет несколько названий — Система Управления Базами Данных (СУБД), сервер баз данных и т.д. Я буду называть ее СУБД.
Суть и цель этой программы — организовать централизованный доступ к данным. Т.е. все запросы на получение или изменение данных от клиентских приложений (клинетов) посылаются (обычно по сети и по протоколу TCP/IP) именно в эту программу. И уже эта программа будет заниматься всеми вышеупомянутыми проблемами:

  1. СУБД будет иметь некоторый набор команд, который позволит записывать и получать данные
  2. СУБД будет сама работать с файловой системой (нередко у нее бывает своя собственная файловая система для скорости)
  3. СУБД предоставит механизмы разграничения доступа к разным данным
  4. СУБД будет решать задачи одновременного доступа к данным

В итоге мы получаем достаточно ясную архитектуру — есть СУБД, которая сосредоточена на работе с данными и есть клиенты, которые могут посылать запросы к СУБД.

При работе с СУБД клиенты должны решить достаточно четкие задачи:

  1. Клиент должен соединиться с СУБД. Как я уже упоминал, чаще всего для общения используется сетевой протокол TCP/IP. В момент подключения клиент также передает свой логин/пароль, чтобы СУБД могла его идентифицировать и в дальнейшем позволить (или не позволить) производить те или иные действия над данными
  2. Клиент может посылать команды для изменения/получения данных в СУБД
  3. Данные внутри СУБД хранятся в определенных структурах и к этим структурам можно обратиться через команды

SQL базы данных

Могу предположить,что вышеупомянутые задачи и породили именно SQL-базы данных. В них есть удобные и понятные структуры для хранения данных — таблицы. Эти таблицы можно связывать в виде отношений и тем самым дается возможность хранить достаточно сложно организованные данные. Был придуман специальный язык — SQL (Structured Query Language — структурированный язык запросов). Этот язык хоть и имеет всего 4 команды для манипулирования данными, позволяет создавать очень сложные и заковыристые запросы.
На сегодняшний день SQL-базы данных являются самыми распространенными. В последние годы наметилась тенденция к использованию баз данных, основанные на других способах хранения и обработки данных, но пока их применение достаточно узконаправлено, хотя в некоторых случаях они действительно помогают решать важные задачи более эффективно, но все-таки пока SQL — самое главное направление баз данных. Почему я про это упоминаю ? Потому, что все наше знакомство с технологией работы с базами данных из Java будет сконцентрировано на SQL базах данных. С основными командами SQL вы можете познакомиться в различных учебниках. Их сейчас достаточно много и в большинстве своем они вполне понятны.
Возможно, что я тоже когда-нибудь внесу свою лепту в рассказы про SQL, но в данном разделе предполагается, что вы уже знакомы с основными идеями построения реляционных баз данных и с самим языком SQL.

JDBC — Java Database Connectivity — архитектура

Если попробовать определить JDBC простыми словами, то JDBC представляет собой описание интерфейсов и некоторых классов, которые позволяют работать с базами данных из Java. Еще раз: JDBC — это набор интерфейсов (и классов), которые позволяют работать с базами данных.
И вот с этого момента я попробую написать более сложное и в тоже время более четкое описание архитектуры JDBC. Главным принципом архитектуры является унифицированный (универсальный, стандартный) способ общения с разными базами данных. Т.е. с точки зрения приложения на Java общение с Oracle или PostgreSQL не должно отличаться. По возможности совсем не должно отличаться.
Сами SQL-запросы могут отличаться за счет разного набора функций для дат, строк и других. Но это уже строка запроса другая, а алгоритм и набор команд для доставки запроса на SQL-сервер и получение данных от SQL-сервера отличаться не должны.

Наше приложение не должно думать над тем, с какой базе оно работает — все базы должны выглядеть одинаково. Но при всем желании внутреннее устройство передачи данных для разных СУБД разное. Правила передачи байтов для Oracle отличается от правил передачи байтов для MySQL и PostgreSQL. В итоге имеем — с одной стороны все выглядят одинаково, но с другой реализации будут разные. Ничего не приходит в голову ?
Еще раз — разные реализации, но одинаковый набор функциональности.

Думаю, что вы уже догадались — типичный полиморфизм через интерфейсы. Именно на этом и строится архитектура JDBC. Смотрим рисунок.

Как следует из рисунка, приложение работает с абстракцией JDBC в виде набора интерфейсов. А вот реализация для каждого типа СУБД используется своя. Эта реализация называется “JDBC-драйвер”. Для каждого типа СУБД используется свой JDBC-драйвер — для Oracle свой, для MySQL — свой. Как приложение выбирает, какой надо использовать, мы увидим чуть позже.
Что важно понять сейчас — система JDBC позволяет загрузить JDBC-драйвер для конкретной СУБД и единообразно использовать компоненты этого драйвера за счет того, что мы к этим компонентам обращаемся не напрямую, а через интерфейсы.
Т.е. наше приложение в принципе не различает, обращается оно к Oracle или PostgreSQL — все обращения идут через стандартные интерфейсы, за которыми “прячется” реализация.

Пока я предлагаю отметить несколько важных интерфейсов, которые мы будем рассматривать позже, но мне бы хотелось, чтобы у вас этот список уже был, чтобы вы могли по мере прочтения отмечать — “да, вот он важный интерфейс/класс и я теперь знаю, куда он встраивается”. Вот они:

  1. java.sql.DriverManager
  2. java.sql.Driver
  3. java.sql.Connection
  4. java.sql.Statement
  5. java.sql.PreparedStatement
  6. java.sql.CallableStatement
  7. java.sql.ResultSet

Теперь давайте рассмотрим несложный пример и поймем, как работает JDBC.

JDBC — пример соединения и простого вызова

Попробуем посмотреть на несложном примере, как используется JDBC-драйвер. В нем же мы познакомимся с некоторыми важными интерфейсами и классами.

Предварительно нам необходимо загрузить JDBC-драйвер для PostgreSQL. На данный момент это можно сделать со страницы PostgreSQL JDBC Download

Если вы не нашли эту страницу, то просто наберите в поисковике “PostgreSQL JDBC download” и в первых же строках найдете нужную страницу.
Т.к. я пишу эти статьи для JDK 1.7 и 1.8, то я выбрал строку “JDBC41 Postgresql Driver, Version 9.4-1208” — может через пару-тройку лет это будет уже не так.
Если вы выполнили SQL-скрипт из раздела Установка PostgreSQL, который создавал таблицу JC_CONTACT и вставил туда пару строк, то эта программа позволит вам “вытащить” эти данные и показать их на экране. Это конечно же очень простая программа, но на ней мы сможем посмотреть очень важные моменты. Итак, вот код:


Для запуска этой програмы необходимо подключить JDBC-драйвер для PostgreSQL. Прочитайте раздел Что такое JAR-файлы для того, чтобы подключить нужный JAR с JDBC-драйвером к проекту в NetBeans.
Для запуска нашей программы из командной строки достаточно собрать этот код (причем здесь не надо подключать JAR на этапе компиляции — только на момент запуска).
Итак, команда для сборки:

И теперь команда для запуска:

Для запуска проекта в NetBeans предлагаю вам самостоятельно разобраться, как подключить JAR-файл — пример этого указан в статье Что такое JAR-файлы

Начнем разбор нашей программы с самого начала. Итак, в чем же заключается набор вызовов для создания соединения с базой

Вызов Class.forName() мы уже встречали, когда разговаривали о рефлексии. Если вы этого не сделали — обязательно прочитайте, иначе многое будет непонятно. Так вот наш вызов загружает один из ключевых классов JDBC, который реализует очень важный интерфейс java.sql.Driver. Почему этот класс так важен, мы разберем чуть ниже.
Следующим важным вызовом явлется DriverManager.getConnection(url, login, password);.
Думаю, что параметры login и password достаточно оччевидны — это логин и пароль для подключения к СУБД. А вот первый параметр — url надо рассмотреть подробно.
Параметр url является строкой и я люблю его разбивать на две части. Первая часть jdbc:postgresql: позволяет идентифицировать, к какому типу СУБД вы подключаетесь — Oracle, MySQL, PostgreSQL, IBM DB2, MS SQL Server. В нашем случае тип базы данных — PostgreSQL.
Вторая часть — //localhost:5432/contactdb — определяет конкретный экземпляр выбранной базы данных. Т.е. если первая часть url указывает, что мы хотим работать с PostgreSQL, то вторая часть указывает на каком хосте и на каком порту (опять вспоминаем основы TCP/IP) работает конкретный экземпляр PostgreSQL. Еще раз — первая часть поределяет только тип, вторая часть — параметры оединения с конкретным экземпляром СУБД.
Как вы можете видеть, вторая часть включает помимо IP-адреса и порта (localhost:3306) включает имя базы данных, с которой вы будете соединяться.

И вот теперь возвращаемся к интерфейсу java.sql.Driver. Достаточно очевидно, что сложное приложение на Java может работать с несколькими типами СУБД и одновременно в приложнении участвуют несколько JDBC-драйверов для разных типов СУБД. Так как же класс DriverManager определяет, какой тип СУБД вы собираетесь использовать ?
Придется нам вернуться к моменту загрузки класса — Class.forName(). Большинство классов в момент своей загрузки выполняют очень важный шаг — они РЕГИСТРИРУЮТСЯ у класса DriverManager. Как они это делают ? Посмотрите документацию на класс DriverManager — например здесь:
DriverManager
Среди методов мы можете найти этот: registerDriver(Driver driver). Причем метод статический и создавать экземпляр DriverManager не надо. Таким образом драйвер под конкретный тип СУБД регистрируется у DriverManager. У этого класса (можно глянуть в исходники) создается список драйверов, каждый из которых реализует интерфейс java.sql.Driver. Что же происходить дальше ? Зайдем в документацию java.sql.Driver. Там есть два очень интересных метода:

  1. boolean acceptsURL(String url)
  2. Connection connect(String url, Properties info)

Подключение Java к базе данных MySQL

Как вы подключаетесь к базе данных MySQL в Java?

Когда я пытаюсь, я получаю

Вот шаг за шагом объяснение, как установить MySQL и JDBC и как использовать его:

Скачать и установить сервер MySQL . Просто сделать это обычным способом. Помнитеномер портакогда вы изменили его. Это по умолчанию 3306 .

Скачать драйвер JDBC и положить в пути к классам , извлечь файл ZIP и поместить содержащий файл JAR в путиклассам. Конкретного производителя драйвер JDBC является конкретной реализацией JDBC API ( учебник здесь ).

Если вы используете IDE как Eclipse , или Netbeans, то вы можете добавить его в пути к классам путем добавления файла JAR , как библиотеки для сборки Пути в свойствах проекта.

Если вы делаете это «простой ванили» в командной консоли, то вам необходимо указать путь к файлу JAR в -cp или -classpath аргумент при выполнении приложения Java.

. Только там , чтобы добавить текущую директорию в путь к классам, а так , что он может найти com.example.YourClass и ; является сепаратор , как путь к классам он находится в Windows. В Unix и клоны : должны быть использованы.

Создание базы данных в MySQL . Давайте создадим базу данных javabase . Вы, конечно , хотите World Domination, так что давайте использовать UTF-8 , а также.

Создайте пользователя для Java и предоставить ему доступ . Просто потомучтоиспользуя root это плохая практика.

Да, java это имя пользователя и password это пароль здесь.

Определите URL — адрес JDBC . Для подключения к базе данных MySQLпомощью Java вам нужен URL JDBC в следующий синтаксис:

hostname : Имя хоста , где установлен сервер MySQL. Если он установлен на той же машине , где выполняется код Java, то вы можете просто использовать localhost . Она также может быть IP — адрес , как 127.0.0.1 . Если у вас возникли проблемы с подключением и использованием 127.0.0.1 вместо localhost решить ее, то у Вас есть проблемы в вашей сети / DNS / хостов конфигурации.

port : Параметр / IP — порт TCP , где сервер MySQL прослушивает. Это по умолчанию 3306 .

databasename : Имя базы данных вы хотите подключиться. Это javabase .

Таким образом, окончательный URL должен выглядеть следующим образом:

Проверьте подключение к MySQL с помощью Java . Создайте простой класс Java с main() методомчтобы проверить соединение.

Если вы получаете SQLException: No suitable driver , то это означает , что драйвер JDBC не автоматически загружаются на все или что URL JDBC неправильно (то есть он не был признан ни одной из загруженных драйверов). Как правило, драйвер JDBC 4.0 должен быть автоматически загружаются , когда вы просто его выполнение классов. Чтобы исключить одно и другое, вы всегда можете вручную загрузить его , как показано ниже:

Обратите внимание , что newInstance() вызов не нужен здесь. Это просто исправить старые и багги org.gjt.mm.mysql.Driver . Расшифровка здесь . Если эта линия бросает ClassNotFoundException , то файл JAR , содержащий класс драйвера JDBC просто не был помещен в пути к классам.

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

Если вы получаете SQLException: Connection refused OR Connection timed out или конкретный MySQL CommunicationsException: Communications link failure , то это означает , что DB не доступен на всех. Это может иметь один или несколько из следующих причин:

  1. IP-адрес или имя хоста в JDBC URL неправильно.
  2. Hostname в JDBC-URL не распознается локального сервера DNS.
  3. Номер порта отсутствует или неправильно в JDBC URL.
  4. Сервер БД вниз.
  5. Сервер БД не принимает TCP / IP соединения.
  6. Сервер БД Закончились соединений.
  7. Что-то между Java и БД блокирует соединения, например, брандмауэр или прокси-сервер.

Для того, чтобы решить один или другой, выполните следующие рекомендации:

  1. Проверка и протестировать их ping .
  2. Обновить DNS или использовать IP-адрес в JDBC URL вместо.
  3. Проверьте его на основе my.cnf из БД MySQL.
  4. Запуск БД.
  5. Проверьте , если туздЫ запускается без —skip-networking option .
  6. Перезапустите БД и исправить код , соответственно , что она закрывает соединения в finally .
  7. Отключить брандмауэр и / или настроить брандмауэр / прокси, чтобы вперед / порт.

Обратите внимание , что закрытие Connection является чрезвычайно важным. Если не закрывать соединения и продолжать получать их много в короткий промежуток времени, то база данных может выполняться из соединений и ваше приложение может сломаться. Всегда приобрести Connection в try-with-resources заявлении . Или , если вы не на Java-пока, явно закрыть его finally из try-finally блока. Приближаясь finally просто чтобы убедиться , что она свернута , а также в случае исключения. Это также относится и к Statement , PreparedStatement и ResultSet .

Это было как далеко проблемы подключения. Вы можете найти здесь более продвинутый учебник , как загружать и хранить fullworthy модели объектов Java в базе данных с помощью базового класса DAO.

Прикладное программирование с нуля.

AVR, STM, Android, IoT. Встраиваемые системы.

JDBC. Взаимодействие Java-приложения и MySQL. Шаг №51

Всем привет. Сегодня мы рассмотрим управление базой данных непосредственно с java-приложения, но через СУБД. Как Вы помните, в прошлой статье мы рассмотрели работу с базой данных через консоль. Теперь же SQL запросы будем посылать непосредственно из программы, на java используя методы JDBC и драйвер. Итак, разложим все по полкам. Что такое JDBC ( Java DataBase Connectivity — соединение с базами данных на Java )

Теперь приступим к программе. Используем классы пакета java.sql.


import java.sql.Connection; /*Выбирает методы для создания сеанса связи с базой данных*/
import java.sql.DriverManager; /*Исключения для работы с БД*/
import java.sql.SQLException;
import java.sql.ResultSetMetaData; /*Методы для обработки результата обращения к базе данных*/
import java.sql.Statement; /*Методы для передачи SQL-запроса базе данных*/
import java.sql.ResultSet; /*Методы для обработки результата обращения к базе данных*/
import java.util.Vector; /*Содержит элементы, к которым можно получить доступ, используя целочисленный индекс.*/
public class conMySQL <
private Connection con = null;
public conMySQL (String driver, String url, String login, String pass) < /*driver – имя нашего драйвера MySQL Connector/J; url – адрес базы данных (имя) ; login – имя пользователя; pass – пароль.*/
try <
>/*forName-загрузка драйвера для базы данных*/
con = DriverManager.getConnection(url, login, pass);
> catch ( >/*Если нет драйвера */ <
System.err.println («conMySQL.Cannot find this db driver classes.»);
ex.printStackTrace ();
> catch (SQLException e) < /*если DriverManager не может соединиться c базой*/
System.err.println («KFDB.Cannot connect to this db.»);
e.printStackTrace ();
>
>
public Vector > getNomen (String query) /*Возврат информации базы данных*/ <
Vector > retVector = new Vector >();
try <
Statement st = con.createStatement (); /*Посылка запроса БД*/
ResultSet rs = st.executeQuery (query); /*Выполнение запроса и возврат данных*/
ResultSetMetaData rsmd = rs.getMetaData (); /*Устойстве набора данных*/
int cols = rsmd.getColumnCount (); /*Количество колонок в наборе данных*/
while (rs.next ()) < /*Перемещаеся по строкам набора данных.*/
Vector newRow = new Vector ();
for (int i = 1; i /*Извлекаем значение из каждой ячейки строки*/
newRow.add (rs.getObject (i));
>
retVector.add (newRow); /*retVector отображение набора данных rs.*/
>
rs.close ();
st.close ();
> catch (SQLException e) <
System.err.println («conMySQL.There are problems with the query » + query);
e.printStackTrace ();
>
return retVector;
>
>

Выведем информацию содержащуюся в базе данных в приложение. Для этого создадим еще один класс, который будет хранить информацию с базы данных и передавать в таблицу.
import java.util.Vector;
import javax.swing.table.AbstractTableModel; /*Реализации методов в интерфейсе TableModel*/
public class modelMySQL extends AbstractTableModel <
private static final long serialVersionU >
protected Vector columnNames; /*Имена колонок*/
private Vector > tableData; /*Данные*/
protected Vector vCol >/*Классы колонок*/
public modelMySQL () <
super ();
vCol >();
vColClass.add (0, Float.class);
vColClass.add (1, Float.class);
vColClass.add (2, String.class);
vColClass.add (3, String.class);
columnNames = new Vector ();
columnNames.add («Температура 1»);
columnNames.add («Температура 2»);
columnNames.add («Время»);
columnNames.add («Дата»);
>
@Override
public int getColumnCount () <
return columnNames.size ();
>
@Override
public int getRowCount () <
return getTableData ().size ();
>
@Override
public Object getValueAt (int row, int column) <
return getTableData ().get (row).get (column);
>
/* заголовки колонок*/
public String getColumnName (int column) <
return columnNames.get (column);
>
/* Запрещаем редактировать первую колонку*/
public boolean isCellEditable (int row, int column) <
if (column == 0) <
return false;
>
return true;
>
public void setValueAt (Object obj, int row, int column) <
if (column == 0) <
(getTableData ().get (row)).set (column, (Integer) obj);
>
else if (column == 1) <
(getTableData ().get (row)).set (column, (String) obj);
>
fireTableCellUpdated (row, column);
>
public Class getColumnClass (int col) <
Class c = Object.class;
try <
c = (Class ) vColClass.get (col);
> catch (RuntimeException e) <
System.out.println (e);
>
return c;
>
public void setTableData (Vector > tableData) <
this.tableData = tableData;
>
public Vector > getTableData () <
return tableData;
>
>

Ну и последнее наш основной класс. Я его полностью не буду переписывать, только дополненные части. Полный текст в статье логирование на java , где мы сохраняли данные логгера в текстовый файл.
import javax.swing.JScrollPane; /*Добавляем прокрутку в таблицу*/
import javax.swing.JTable; /*таблица для показа базы данных*/
public class readLog extends Frame <
. .
private JTable table;
private modelMySQL model; /*Объект для передачи данных базы в таблицу */
private conMySQL baza; /*Создаем объект базы*/
.
public readLog () <
.
/*Указываем драйвер, размещение базы данных, пароль и имя пользователя*/
baza = new conMySQL («com.mysql.jdbc.Driver», «jdbc:mysql://localhost:3306/logger», «root», «root»);
model = new modelMySQL ();
model.setTableData (baza.getNomen («SELECT * FROM log»)); /*Запрос таблицы*/
table = new JTable (model); /*Передаем в таблицу данные базы, обработанные в классе modelMySQL*/
add (new JScrollPane (table), BorderLayout.CENTER);
table.getColumnModel ().getColumn (2).setMaxWidth (50);
.
>
>

На рисунке слева данные таблицы базы. Вы можете сравнить их с предыдущей статьей, где мы рассматривали способы записи данных в базу. Теперь немного о встроенном сервере MySQL. К сожалению через язык java нет возможности встроить сервер. Только с помощью интерфейса С/С++. Конечно можно было бы попробовать с помощью машинно-независимых методов JNI . Но мы не будем тратить время и возьмем прекрасное приложение (движок) SQLite . В следующей статье мы познакомимся с этой СУБД и встроим в нашу программу. На этом сегодня и остановимся. Всем пока.

Работа с базами данных с помощью JDBC драйвера

В этом уроке я бы хотел вас научить работать с базами данных MySQL, PostgreSQL, Oracle. А именно как подключится и выполнять SQL запросы к базе с помощью java.

Что такое JDBC?

JDBC Driver – (Java DataBase Connectivity — соединение с базами данных на Java) — платформенно-независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql , входящего в состав Java SE.

Зачем нужен JDBC?

JDBC – позволяет получать доступ к БД, а также выполнять к ней SQL запросы.

Шаг 1.

Скачиваем jar файл JDBC драйвера.

Шаг 2.

Подключение к БД Mysql:

Подключение к БД PostgreSQL:

Подключение к БД Oracle:

В 1-й строке мы указываем наш JDBC драйвер. Не забудьте добавить его в ClassPath иначе его компилятор его не увидит.
Во 2-й строке JDBC Manager который открывает соединение с базой данных и обеспечит нам дальнейшее обращение к ней.
И последняя строка закрывает соединение с БД.

Желательно строку для определения JDBC поместить в блок try для того чтобы контролировать его наличия в вашем приложении.

Шаг 3. Создание таблиц в БД.

Вынесем в отдельный метод соединение с БД.

Этот метод будет создавать в БД таблицу:

и в main методе вызываем метод createDbTable() который создаст таблицу в БД.

В результате вы должны получить:

Шаг 4. Добавление новой записи в БД.

метод который будет возвращать текущую дату и время:

И выполняем наш SQL запрос который лежит в переменной insertTableSQL

Шаг 5. Получение данных с БД.

Шаг 6. Удаление данных с БД.

Выполняем запрос на удаление:

Шаг 7. Обновление данных в БД.

Выполняем запрос на обновление записи:

Выводы.

Все действия с любой базой данных выполняются через SQL запросы, то есть нам достаточно знать SQL для манипуляцией данными в БД.

ПОХОЖИЕ ПУБЛИКАЦИИ

29 комментариев к статье «Работа с базами данных с помощью JDBC драйвера»

Проблема с подключением jdbc к приложению для Android – заголовок комментария.

Почему в жизни так бывает …

строка Connection connection = DriverManager.getConnection(“jdbc:postgresql://хост:порт/имя_дб”,”пользователь”, “пароль”);
выдаёт ошибку Unhandled exception type SQLException
( строка connection.close(); – выдаёт туже ошибку )

При добавлении строки import java.sql.SQLException; в MainActivity.java
выводит сообщение …
The import java.sql.SQLException is never used

При этом файл postgresql-9.2-1002.jdbc4.jar лежит в /libs

И в classpath добавлять пробовал, хотя многие источники говорят, что это не обязательно, достаточно держать файл postgresql-9.2-1002.jdbc4.jar в /libs


При нажатие ctrl+shift+O Eclips добавляет только:

Руководство Java JDBC

View more Tutorials:

1- Database использующийся в данной статье

2- Что такое JDBC?

  1. DriverManager:
    • Это класс, использующийся для управления списком Driver (database drivers).
  2. Driver:
    • Это интерфейс, использующийся для соединения коммуникации с базой данных, управления коммуникации с базой данных. Когда загружается Driver, программисту не нужно конкретно вызывать его.
  3. Connection:
    • Интерфейс со всеми методами связи с базой данных. Он описывает коммуникационный контекст. Вся связь с базой данных осуществляется только через объект соединения (connection).
  4. Statement:
    • Это интерфейс, включающий команду SQL отправленный в базу данных для анализа, обобщения, планирования и выполнения.

    ResultSet :

    • ResultSet представляет набор записей, извлеченных из-за выполнения запроса.

3- На каком принципе подключается Java к базе данных?

Вопрос для нас в том, что такое » ODBC DataSource«?

ODBC — Open Database Connectivity: Это набор открытых библиотек, которые могут подключаться практически ко всем видам различных баз данных, и это бесплатно. Предоставляется Microsoft.

ODBC DataSource: в операционной системе Windows вы можете объявить соединение ODBC с определенным видом BD. В результате у нас есть источник данных (Data Source).

В JDBC API, JDBC-ODBC Bridge (мост) был настроен так, что JDBC может работать с ODBC Data Source.

Создание простого веб-приложения с использованием базы данных MySQL

В этом документе описана процедура создания простого веб-приложения, которое подключается к серверу базы данных MySQL. Здесь также рассмотрены основные идеи и технологии веб-разработки, такие какJavaServer Pages (JSP), библиотека стандартных тегов JavaServer Pages (JSTL), интерфейс API связи с базами данных Java (JDBC) и двухуровневая архитектура между клиентом и сервером. Этот учебный курс разработан для начинающих разработчиков, обладающих базовыми знаниями в области веб-разработок и желающих применить свои знания к базе данных MySQL.

MySQL является популярной системой управления базами данных с открытым кодом, которая обычно используется в веб-приложениях благодаря своей скорости, гибкости и надежности. MySQL использует SQL (язык структурированных запросов) для доступа к данным в базе данных и их обработки.

Этот учебный курс является продолжением учебного курса Подключение к базе данных MySQL и в нем предполагается, что уже создана база данных MySQL с именем MyNewDatabase , для которой зарегистрировано подключение в IDE NetBeans. Табличные данные, используемые в этом учебном курсе, содержатся в ifpwafcad.sql и также необходимы для работы с этим учебным курсом. Этот файл SQL создает две таблицы Subject и Counselor и затем заполняет их данными для примера. При необходимости сохраните этот файл на компьютер, затем откройте его в IDE NetBeans и запустите его в базе данных MySQL с именем MyNewDatabase .

Содержание

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Программное обеспечение или материал Требуемая версия
IDE NetBeans 7.2, 7.3, 7.4, 8.0, пакет Java EE
Комплект для разработчика на языке Java (JDK) версия 7 или 8
Сервер базы данных MySQL 5.x
Драйвер JDBC MySQL Connector/J версия 5.x
GlassFish Server Open Source Edition 3.1.2.2 3.x или 4.x
  • Комплект загрузки Java среды IDE NetBeans позволяет пользователям установить сервер GlassFish. Для работы с данным учебным курсом требуется сервер GlassFish.
  • MySQL Connector/J JDBC Driver, необходимый для взаимодействия между платформами и протоколом баз данных MySQL, включен в IDE NetBeans.
  • Если необходимо сравнить проект с работающим решением, можно загрузить демонстрационное приложение.

Планирование структуры

С помощью двухуровневой архитектуры, в которой клиент взаимодействует с сервером напрямую, можно создать простое веб-приложение. В рамках данного учебного курса веб-приложение Java взаимодействует напрямую с базой данных MySQL с использованием API связи с базами данных Java. В сущности, именно драйвер MySQL Connector/J JDBC обеспечивает обмен данными между кодом Java, распознанным сервером приложения (GlassFish), и любым содержимым на SQL, языке, понятном для сервера базы данных (MySQL).

Приложение, создаваемое в этом учебном курсе, предполагает создание двух страниц JSP. На каждой такой странице с помощью HTML и CSS реализован простой интерфейс, и применяется технология JSTL для выполнения логики, напрямую запрашивающей базу данных с вставкой извлеченных данных на двух страницах. В базе данных MySQL MyNewDatabase содержатся две таблицы базы данных Subject и Counselor , которые были созданы при работе с учебным курсом Подключение базы данных MySQL. Рассмотрим следующий двухуровневый сценарий.

Страница приветствия index.jsp представляется пользователю с помощью простой формы HTML. При запросе браузером index.jsp код JSTL на странице инициирует запрос в MyNewDatabase . Выполняется извлечение данных из таблицы Subject со вставкой их на страницу перед ее передачей в браузер. При передаче данных о выборе пользователя в форме HTML на странице приветствия инициируется запрос страницы ответов ( response.jsp ). И снова код JSTL на странице инициирует запрос в MyNewDatabase . На этот раз данные извлекаются из обеих таблиц — Subject и Counselor . После чего выполняется их вставка на страницу, что позволяет пользователю просматривать данные в зависимости от вариантов выбора при возврате страницы в браузер.

Для реализации описанного выше сценария необходимо разработать простое приложение для организации IFPWAFCAD Международной ассоциации по консультированию и развитию для бывших профессиональных борцов.

index.jsp

response.jsp

Создание нового проекта

Сначала необходимо создать новый веб-проект в среде IDE:

    Выберите «Файл > Новый проект» (CTRL+SHIFT+N; &#8984+SHIFT+N в Mac ОС) в главном меню. Выберите категорию «Java Web», а затем выберите «Веб-приложение». Нажмите кнопку «Далее».


С помощью этого мастера можно создать пустое веб-приложение в стандартном проекте IDE. В стандартном проекте для компиляции, развертывания и выполнения приложения используется созданный в среде IDE сценарий сборки проекта Ant.

  • В поле «Имя проекта» введите «IFPWAFCAD». Также укажите местоположение проекта на компьютере. По умолчанию проекты в среде IDE помещаются в папку NetBeansProjects в домашнем каталоге. Нажмите кнопку «Далее».
  • В панели «Сервер и параметры» укажите сервер GlassFish в качестве сервера, на котором будет запускаться приложение.

    Примечание.Сервер GlassFish отображается в раскрывающемся списке ‘Сервер’, если установлена версия Java IDE NetBeans. Поскольку сервер GlassFish включен в загрузку, он регистрируется в среде IDE автоматически. Для использования в проекте другого сервера нажмите кнопку «Добавить» рядом с полем с раскрывающимся списком «Сервер» и зарегистрируйте другой сервер в среде IDE. Работа с другими серверами, помимо GlassFish в рамках данного учебного курса не рассматривается.

    В поле «Версия Java EE» выберите Java EE 5.

    Для веб-проектов Java EE 6 и Java EE 7 использование дескриптора развертывания web.xml не требуется. Шаблон проекта NetBeans не содержит файл web.xml в проектах Java EE 6 и Java EE 7. Однако в данном учебном курсе рассматривается процесс объявления источника данных в дескрипторе развертывания. Функции, характерные только для Java EE 6 или Java EE 7, не требуются, поэтому в качестве версии проекта можно указать Java EE 5.

    Примечание. Точно так же можно указать в качестве версии проекта Java EE 6 или Java EE 7, а затем создать дескриптор развертывания web.xml . В мастере создания файла выберите категорию «Web», а затем выберите «Стандартный дескриптор развертывания».

  • Нажмите кнопку «Завершить». Создается шаблон проекта для всего приложения и в редакторе открывается пустая страница JSP ( index.jsp ). Файл index.jsp служит в приложении страницей приветствия.
  • Подготовка веб-интерфейса

    Начните с подготовки страницы приветствия ( index.jsp ) и страницы ответов ( response.jsp ). На странице приветствия реализована форма HTML для сбора пользовательских данных. На обеих страницах для просмотра структурированных данных используется таблица HTML. В этом разделе также рассматривается процесс создания таблицы стилей, которая расширяет внешний вид обеих страниц.

    Настройка страницы приветствия

    Убедитесь, что страница index.jsp открыта в редакторе. Если файл еще не открыт, дважды щелкните index.jsp под узлом «Веб-страницы» проекта IFPWAFCAD в окне «Проекты».

    1. В редакторе измените текст между тегами на Домашняя страница IFPWAFCAD .
    2. Измените текст между тегами

    на Добро пожаловать в IFPWAFCAD, Международную ассоциацию по консультированию и развитию для бывших профессиональных борцов!
    Откройте палитру среды IDE, выбрав в главном меню «Окно» > «Палитра» (CTRL+SHIFT+8; &#8984+SHIFT+8 в ОС Mac). Наведите курсор на значок «Таблица» в категории «HTML» и обратите внимание на то, что отображается фрагмент кода для элемента по умолчанию.

    Палитру можно настроить в соответствии с существующими требованиями — щелкните правой кнопкой мыши палитру и выберите ‘Показать крупные значки’ и ‘Скрыть имена элементов’, чтобы палитра выглядела как на рисунке выше.
    Установите курсор сразу же после тегов

    . (Именно в этом месте будет внедрена новая таблица HTML). Далее в окне «Палитра» дважды щелкните значок «Таблица».
    В появившемся диалоговом окне «Вставка таблицы» укажите следующие значения и затем нажмите кнопку «ОК»:

    • Рядов: 2
    • Столбцов: 1
    • Размер границы: 0

    Код таблицы HTML создан и добавлен на страницу.

  • Добавьте следующее содержимое в заголовок таблицы и ячейку первой строки таблицы (новое содержимое выделено полужирным шрифтом):
  • Для нижней строки таблицы вставьте форму HTML. Для этого поместите курсор между второй парой тегов и дважды щелкните значок формы HTML ( ) на палитре. В диалоговом окне «Вставка формы» введите response.jsp в текстовом поле «Действие» и нажмите кнопку «ОК».
  • Между тегами
  • Нажмите клавишу Enter, чтобы добавить пустую строку после добавленного содержимого, затем дважды щелкните «Список» в палитре, чтобы открыть диалоговое окно «Вставить список».
  • В диалоговом окне «Вставить список» ведите subject_id для текстового поля «Имя» и нажмите «OK». Обратите внимание на то, что к форме добавляется фрагмент кода для раскрывающегося списка.

    Количество параметров для раскрывающегося списка не имеет значения. Позже в этом учебном курсе будет показано добавление тегов JSTL для динамического создания на основе данных, полученных из таблицы базы данных «Subject».

  • Добавьте элемент кнопки ‘Отправить’ ( ) в точку, расположенную непосредственно после только что добавленного раскрывающегося списка. Для этого можно использовать окно «Палитра» или вызвать дополнение кода в редакторе, как показано в предыдущем шаге. В диалоговом окне «Вставка кнопки» в текстовых полях «Подпись» и «Имя» введите Отправить и нажмите кнопку ОК.
  • Для форматирования кода щелкните правой кнопкой мыши в редакторе и выберите ‘Формат’ (Alt-Shift-F; Ctrl-Shift-F в Mac). Код автоматически форматируется и должен теперь выглядеть следующим образом:

    Для просмотра этой страницы в браузере щелкните правой кнопкой мыши в редакторе и выберите ‘Запустить файл’ (Shift-F6; Fn-Shift-F6 в Mac). После этого страница JSP будет автоматически скомпилирована и развернута на сервере. Открывается браузер по умолчанию, и в нем выводится страница из местоположения, где она развернута.

    Создание страницы ответов

    Для подготовки интерфейса для страницы response.jsp сначала необходимо создать файл в проекте. Обратите внимание на то, что большая часть содержимого, отображаемого на странице, создана динамически с помощью технологии JSP. Поэтому в следующих шагах будет необходимо добавить метки-заполнители, которые позже будут заменены кодом JSP.

    1. Щелкните правой кнопкой мыши узел проекта «IFPWAFCAD» в окне «Проекты» и выберите «Создать > JSP». Откроется диалоговое окно «Новый файл JSP».
    2. В поле «Имя файла JSP» введите response . Обратите внимание на то, что в настоящий момент для поля «Расположение» выбран каталог «Веб-страницы», это означает, что файл будет создан в каталоге проекта web . Это то же местоположение, что и для страницы приветствия index.jsp .
    3. Примите остальные значения по умолчанию и нажмите кнопку «Готово». В редакторе выполняется создание и открытие шаблона новой страницы response.jsp . Новый узел JSP также отображается в каталоге «Веб-страницы» в окне «Проекты».
    4. В редакторе измените заголовок на IFPWAFCAD —
    5. Удалите строку


    Hello World!

    Для просмотра этой страницы в браузере щелкните правой кнопкой мыши в редакторе и выберите ‘Запустить файл’ (Shift-F6; Fn-Shift-F6 в Mac). Выполняется компиляция и развертывание страницы на сервере GlassFish с последующим открытием в браузере по умолчанию.

    Создание таблицы стилей

    Создайте простую таблицу стилей для расширения просмотра в веб-интерфейсе. При работе с данным учебным курсом предполагается, что пользователь обладает знаниями о правилах стилей и их влиянии на соответствующие элементы HTML на страницах index.jsp и response.jsp .

    1. Откройте мастер создания файлов, нажав кнопку ‘Создать файл’ ( ) на главной панели инструментов IDE. Выберите категорию «Web», а затем выберите «Каскадная таблица стилей» и нажмите кнопку «Далее».
    2. Введите style в поле «Имя файла CSS» и нажмите кнопку «Готово». Среда IDE создает пустой файл CSS и располагает его в том же местоположении проекта, что и index.jsp и response.jsp . Обратите внимание на то, что узел для style.css отображается теперь внутри проекта в окне «Проекты», а файл открывается в редакторе.
    3. В редакторе добавьте следующее содержимое к файлу style.css :
    4. Подключите таблицу стилей к index.jsp и response.jsp . На обеих страницах добавьте следующую строку между тегами : Для быстрого перехода между открытыми в редакторе файлами нажмите CTRL+TAB, а затем выберите требуемый файл.

    Подготовка средств обмена данными между приложениями и базой данных

    Наиболее эффективным способом реализации соединения между сервером и базой данных является настройка пула подключений базы данных. Создание нового подключения для каждого запроса клиента может занимать много времени, особенно для приложений, постоянно получающих огромное количество запросов. Во избежание этого создается и поддерживается множество подключений, организованных в виде пула подключений. Входящие запросы, требующие доступа к данным приложения, используют уже созданное подключение из пула. Аналогичным образом, когда запрос завершен, подключение не закрывается, а возвращается в пул.

    После подготовки источника данных и пула подключений для сервера необходимо определить в приложении необходимость использования источника данных. Как правило, для этого создается запись в дескрипторе развертывания приложения web.xml . Наконец, необходимо проверить доступность для сервера драйвера базы данных (JDBC MySQL Connector/J).

    Примечание. Для дальнейшей работы необходимо убедиться в том, что база данных MySQL с именем MyNewDatabase настроена корректно и содержит данные примера из ifpwafcad.sql. Этот файл SQL создает две таблицы Subject и Counselor и затем заполняет их данными для примера. Если это не было выполнено ранее, или с этим заданием возникли сложности, то прежде чем продолжить учебный курс, обратитесь к разделу Подключение к базе данных MySQL.

    Помимо этого для создания источника данных и работы с сервером GlassFish в рамках данного учебного курса необходимо защитить базу данных паролем. При использовании учетной записи MySQL root по умолчанию с пустым паролем с помощью командной строки можно установить другой пароль.

    В качестве пароля в этом учебном курсе используется nbuser . Для установки пароля nbuser в командной строке откройте в системе MySQL каталог bin и введите следующие данные:

    Дополнительные сведения приведены в официальном справочном руководстве по работе с MySQL: Защита исходных учетных записей MySQL.

    Настройка источника данных JDBC и пула подключений

    Сервер GlassFish Server Open Source Edition содержит библиотеку формирования пула подключений к базе данных (DBCP) с функцией формирования пула подключений в прозрачном для разработчика режиме. Для этого необходимо настроить для сервера источник данных JDBC (связь с базами данных Java) для использования в приложении при формировании пула подключений.

    Дополнительные сведения о технологии JDBC приведены в документе Учебные курсы Java: основы JDBC.

    Источник данных можно настроить непосредственно в консоли администратора сервера GlassFish или объявить необходимые для приложения ресурсы в файле glassfish-resources.xml , как описано ниже. При развертывании приложения сервер считывает объявления ресурсов и создает требуемые ресурсы.

    Далее рассматривается процесс объявления пула подключений и источника данных, использующего этот пул. Оба действия можно выполнить с помощью мастера ресурсов JDBC NetBeans.

    1. Откройте мастер создания файлов, нажав кнопку ‘Создать файл’ ( ) на главной панели инструментов IDE. Выберите категорию сервера GlassFish, затем выберите «Ресурс JDBC» и нажмите кнопку «Далее».
    2. В шаге 2, в области «Общие атрибуты» выберите параметр «Создать новый пул соединений JDBC», а затем в текстовом поле «Имя JNDI» введите jdbc/IFPWAFCAD.

    Источник данных JDBC использует JNDI. В интерфейсе API JNDI предоставляется единый для всех приложений способ поиска источников данных и получения доступа к ним. Дополнительные сведения приведены в Учебном курсе по JND.

  • Дополнительно можно добавить описание источника данных. Например, укажите Обеспечивает доступ к базам данных, поставляющим данные для приложения IFPWAFCAD .
  • Нажмите кнопку «Далее». После этого еще раз нажмите кнопку «Далее» и пропустите шаг 3, «Дополнительные свойства».
  • В шаге 4 укажите имя пула подключений JDBC IfpwafcadPool. Убедитесь, что выбран параметр «Извлечь из существующего соединения» и выберите jdbc:mysql://localhost:3306/MyNewDatabase из раскрывающегося списка. Нажмите кнопку «Далее».

    Примечание. Мастер обнаруживает все соединения с базой данных, настроенные в IDE. Поэтому на этот момент должно существовать созданное подключение к базе данных MyNewDatabase . Можно проверить, какие подключения были созданы, открыв окно ‘Службы’ (Ctrl-5; &#8984-5 в Mac) и выполнив поиск узлов подключения ( ) в категории ‘Базы данных’.
    На этапе 5 выберите файл javax.sql.ConnectionPoolDataSource в списке «Тип ресурса».

    Обратите внимание на то, что среда IDE извлекает информацию из подключенной базы данных, указанной на предыдущем этапе, и задает свойства «имя-значение» для нового пула подключений.

  • Нажмите кнопку «Завершить». Мастер ресурсов создает файл glassfish-resources.xml , который содержит записи для источника данных и указанный пул подключения.
  • В окне «Проекты» можно открыть glassfish-resources.xml , созданный в дереве узла «Серверные ресурсы». Обратите внимание, что в тегах источник данных и пул соединений объявлены как содержащие ранее указанные значения.

    Для подтверждения регистрации нового источника данных и пула подключения на сервере GlassFish, можно развернуть проект на сервере, затем расположить ресурсы в окне «Службы» среды IDE.

    1. В окне ‘Проекты’, щелкните правой кнопкой мыши узел проекта IFPWAFCAD и выберите ‘Развернуть’. Запустится сервер, если это не было выполнено ранее, и проект будет скомпилирован и развернут на этом сервере.
    2. Откройте окно «Службы» (CTRL+5; &#8984+5 в системе Mac OS) и разверните узлы «Серверы» > «GlassFish» > «Ресурсы» > «JDBC» > «Ресурсы и пулы подключения JDBC». Проверьте, что теперь отображаются новый источник данных и пул подключений:

    Обращение к источнику данных из приложения

    Необходимо создать ссылку на только что созданный в веб-приложении ресурс JDBC. Для этого можно создать запись в дескрипторе развертывания приложения web.xml .

    Дескрипторы развертывания являются текстовыми файлами на основе XML, содержащими информацию о развертывании приложения в определенной среде. Например, они обычно используются для указания параметров контекста приложения и поведенческих шаблонов, настроек безопасности, а также отображений для сервлетов, фильтров и прослушивающих процессов.

    Примечание. Если в качестве версии Java при создании проекта указана Java EE 6 или Java EE 7, необходимо создать файл дескриптора развертывания. Для этого выберите «Веб > Стандартный дескриптор развертывания» в мастере создания файлов.

    Произведите следующие действия, чтобы поместить ссылку на источник данных в дескрипторе развертывания приложения.

    1. В окне «Проекты» разверните структуру папки «Файлы конфигурации» и дважды щелкните web.xml , чтобы открыть файл в редакторе.
    2. Откройте вкладку «Ссылки» в верхней области экрана редактора.
    3. Разверните заголовок «Ссылки на ресурсы» и нажмите кнопку «Добавить», чтобы открыть диалог «Добавление ссылки на ресурс».
    4. В поле «Имя ресурса» введите имя ресурса, указанное выше при настройке источника данных для сервера ( jdbc/IFPWAFCAD ).
    5. Укажите javax.sql.ConnectionPoolDataSource в поле «Тип ресурса». Нажмите кнопку «ОК».

    Поле «Описание» является необязательным, но можно добавить удобочитаемое описание ресурса, например, База данных для приложения «IFPWAFCAD» .


    Новый ресурс теперь перечислен в списке под заголовком ‘Ссылки на ресурсы’.

  • Чтобы убедиться, что ресурс добавлен в файл web.xml , перейдите на вкладку «Исходный код» в верхней части экрана редактора. Заметим, что теперь в код включены следующие теги resource-ref >.
  • Добавление файла JAR драйвера базы данных к серверу

    Добавление файла JAR драйвера базы данных является следующим шагом, необходимым для обеспечения взаимодействия сервера с базой данных. Необходимо поместить каталог установки драйвера базы данных и скопировать файл mysql-connector-java-5.1.6.x-bin.jar из корневого каталога драйвера в папку библиотеки на используемом сервере. Управление сервером в среде IDE при развертывании может обнаружить, добавлен ли файл JAR, и если нет, выполняет это автоматически.

    Чтобы продемонстрировать это, откройте Диспетчер серверов (выберите «Сервис > Серверы»). В среде IDE предоставляется параметр «Развертывание драйвера JDBC». Если параметр включен, он запускает проверку для определения, требуются ли драйверы для развернутых на сервере приложений. В случае MySQL, если драйвер требуется, но он отсутствует, включенный драйвер среды IDE развертывается в соответствующем месте на сервере.

    1. Выберите «Сервис > Серверы», чтобы открыть Диспетчер серверов. На левой панели выберите «GlassFish».
    2. В главном окне выберите параметр «Включить развертывание драйвера JDBC».
    3. Прежде чем закрыть Диспетчер серверов, запишите путь, указанный в текстовом поле «Папка доменов». При подключении к серверу GlassFish в среде IDE фактически подключение выполняется к экземпляру сервера приложений. Каждый экземпляр запускает приложения в уникальном домене, а в поле «Имя домена» указано имя используемого сервером домена. Как видно на рисунке выше, файл JAR драйвера должен находиться в domain1 . Это домен по умолчанию, созданный при установке сервера GlassFish.
    4. Нажмите кнопку «Закрыть», чтобы выйти из Диспетчера серверов.
    5. На компьютере перейдите к каталогу установки GlassFish и войдите в подпапку domains > domain1 > lib . Поскольку проект IFPWAFCAD уже должен быть развернут на сервере, должен отображаться файл mysql-connector-java-5.1.6-bin.jar . Если файл JAR драйвера не отображается, выполните следующий шаг.
    6. Разверните проект на сервере. В окне ‘Проекты’ среды IDE выберите ‘Развернуть’ в контекстном меню узла проекта. Ход выполнения можно видеть в окне «Вывод» среды IDE (CTRL+4; &#8984+4 для Mac). В окне «Вывод» указывается, что драйвер MySQL развернут в местоположении на сервере GlassFish.

    При возврате в подпапку domain1/lib на компьютере видно, что файл mysql-connector-java-5.1.6.x-bin.jar добавлен автоматически.

    Добавление динамической логики

    Вернемся к местозаполнителям index.jsp и response.jsp , созданным выше при работе с учебным курсом. Теперь можно реализовать код JSTL для динамического (т. е. на основе пользовательского ввода) создания содержимого на страницах. Для этого выполните следующие три задания.

    Добавление библиотеки JSTL к пути к классам проекта

    Для доступа к данным из базы данных и их просмотра используйте Библиотеку стандартных тегов JavaServer Pages (JSTL). Сервер GlassFish по умолчанию содержит библиотеку JSTL. Для проверки разверните узел сервера GlassFish под узлом «Библиотеки» в окне «Проекты» и найдите библиотеку javax.servlet.jsp.jstl.jar . (В более ранних версиях сервера GlassFish используется библиотека jstl-impl.jar .) Поскольку библиотеки сервера GlassFish по умолчанию добавляются в путь классов проекта, на данном этапе никаких действий не требуется.

    JSTL имеет четыре основных раздела функциональности.

    • core : базовые, структурные задачи, такие как итерации и условные выражения для контроля потока операций
    • fmt : форматирование сообщений интернационализации и локализации
    • sql : простой доступ к базе данных
    • xml : обработка содержимого XML

    Основное внимание в данном учебном курсе уделяется библиотекам тегов core и sql .

    Реализация кода JSTL

    Теперь можно реализовать код для динамического извлечения и просмотра данных на каждой странице. Для обеих страниц требуется реализация запроса SQL с использованием источника данных, созданного выше в рамках данного учебного курса.

    В среде IDE предоставляется несколько специфичных для базы данных фрагментов JSTL, доступных для выбора в окне «Палитра» (CTRL+SHIFT+8; &#8984+SHIFT+8 для Mac).

    index.jsp

    Для динамического отображения содержимого формы на странице index.jsp необходимо получить доступ ко всем именам из таблицы базы данных «Subject»:

      Наведите курсор мыши на элемент «Отчет БД» в окне «Палитра».

    Для элемента «Отчет БД» при создании запроса SQL используется тег , после чего с помощью тега обрабатывается resultset запроса, а затем выполняется вывод извлеченных данных.

  • Установите курсор над объявлением (строка 7) и дважды щелкните элемент «Отчет БД» в окне «Палитра». В открывшемся диалоговом окне введите следующие подробные сведения:
    • Имя переменной: subjects
    • Контекст: страница
    • Источник данных: jdbc/IFPWAFCAD
    • Оператор запроса: SELECT subject_id, name FROM Subject
  • Нажмите кнопку «ОК». В файле index.jsp создается следующее содержимое. Новое содержимое выделено полужирным шрифтом. Обратите внимание на то, что в среде IDE автоматически добавлены директивы taglib , необходимые для тегов JSTL, используемых в созданном содержимом, ( и ). Директива taglib объявляет, что на странице JSP используются пользовательские теги (JSTL), указывает библиотеку тегов, которая их определяет, а также префикс тега.
  • Запустите проект, чтобы проверить его отображение в браузере. Щелкните правой кнопкой мыши узел проекта в окне «Проекты» и выберите «Выполнить».

    При выборе «Выполнить», IDE развертывает проект на сервере GlassFish, страница индексов компилируется в сервлет, а страница приветствия открывается в браузере по умолчанию. Код, созданный на основе элемента «Отчет БД», определяет следующую таблицу на странице приветствия.

    Как видно, с помощью элемента «Отчет БД» можно быстро протестировать подключение к базе данных и просмотреть табличные данные из базы данных в браузере. Это особенно рекомендуется при создании прототипов.

    В следующих шагах рассматривается интеграция созданного кода в раскрывающийся список HTML, созданный выше при работе с данным учебным курсом.

  • Проверьте данные столбцов в созданном коде. Используется два тега , причем один из них вставляется в другой. В результате контейнер JSP (сервер GlassFish) выполняет цикл по всем строкам таблицы с циклическим прохождением всех столбцов. Аналогично отображаются данные для всей таблицы.
  • Интегрируйте теги в форму HTML следующим образом. Значение каждого элемента изменяется на subject_id , а текст вывода — на name , как записано в базе данных. (Изменения выделяются полужирным шрифтом). Ниже показан более простой способ интеграции тегов в форму HTML.

    Во всех случаях теги циклически обрабатывает значения subject_id и name из запроса SQL со вставкой каждой пары в теги HTML . Таким образом раскрывающийся список формы заполняется данными.


  • Удалите таблицу, созданную из элемента «Отчет БД». (Удаление показано ниже перечеркнутым текстом.)
  • Сохраните изменения (CTRK+S; &#8984+S в Mac OS).
  • Обновите страницу приветствия проекта в браузере.

    Заметим, что раскрывающийся список в браузере теперь содержит названия тем, полученные из базы данных.

    Повторно развертывать проект не нужно, так как функция «Компилировать при сохранении» (compile-on-save) включена для вашего проекта по умолчанию. Это означает, что при изменении и сохранении файла он автоматически компилируется и развёртывается, и нет необходимости перекомпилировать весь проект. Функцию компиляции при сохранении можно отключать в категории «Компиляция» в окне проекта «Свойства».

    response.jsp

    На странице ответов предоставляются подробные сведения о консультанте по теме, выбранной на странице приветствия. Созданный запрос должен содержать запись консультанта, идентификатор которого counselor_id соответствует значению counselor_idfk из выбранной записи темы.

    1. Наведите указатель мыши на объявление (строка 7) и дважды щелкните «Запрос к БД» в палитре, чтобы открыть диалоговое окно «Вставить запрос к БД».
    2. В диалоговом окне «Вставить запрос к БД» введите следующие данные.
      • Имя переменной: counselorQuery
      • Контекст: страница
      • Источник данных: jdbc/IFPWAFCAD
      • Оператор запроса: SELECT * FROM Subject, Counselor WHERE Counselor.counselor_ />
    3. Нажмите кнопку «ОК». В файле response.jsp создается следующее содержимое. Новое содержимое выделено полужирным шрифтом. Обратите внимание на то, что в среде IDE автоматически добавлена директива taglib для тега . Также отметьте, что непосредственно в запросе использовался тег . Поскольку для этого запроса используется значение subject_id , отправленное с index.jsp , извлечь это значение можно с помощью оператора EL (язык выражений) в форме $ , а затем передать его для тега . В этом случае его можно использовать вместо вопросительного знака SQL ( ? ) во время выполнения.
    4. Используйте тег для установки переменной, соответствующей первой записи (строке) resultset , возвращенного из запроса. Новое содержимое выделено полужирным шрифтом. Несмотря на то, что возвращенный из запроса resultset должен содержать только одну запись, этот шаг является обязательным, поскольку для страницы необходимо обеспечить доступ к значениям в записи с помощью операторов EL (язык выражений). Вспомните, что на странице index.jsp можно было получить доступ к значениям из resultset просто посредством тега . Однако тег функционирует путем настройки переменной для строк из запроса, что позволяет извлекать значения путем включения переменной строки в операторы EL.
    5. Добавьте директиву taglib для базовой библиотеки JSTL файла. Это обеспечит распознавание тега . Новое содержимое выделено полужирным шрифтом.
    6. В разметке HTML замените все местозаполнители кодом операторов EL с отображением данных из переменной counselorDetails . (Изменения выделены ниже полужирным шрифтом):

    Запуск готового приложения

    Процесс создания приложения завершен. Попробуйте снова запустить его для просмотра результата в браузере. Обратите внимание на то, что благодаря функции NetBeans «Компиляция при сохранении» специально выполнять компиляцию или повторное развертывание приложения не требуется. При выполнении проекта развертывание гарантированно содержит самые последние изменения.

    Нажмите кнопку ‘Запустить проект’ ( ) на главной панели инструментов. В браузере по умолчанию среды IDE открывается страница index.jsp. .

    Когда в браузере отображена страница index.jsp , выберите тему из раскрывающегося списка и нажмите кнопку submit . Выполняется переадресация на страницу response.jsp , отображающую подробные сведения в соответствии с выбором.

    Это заключительный раздел учебного курса «Создание простого веб-приложения, использующего базу данных MySQL» В этом документе описана процедура создания простого веб-приложения с подключением к базе данных MySQL. Здесь также рассматривается процесс создания приложения с помощью базовой двухуровневой архитектуры при использовании технологий JSTL и JSP для доступа к данным с динамическим просмотром.

    Устранение проблем

    Большинство проблем в приложении из учебного курса возникают по причине сложностей процесса обмена данными между сервером GlassFish Server Open Source Edition и сервером базы данных MySQL. В случае некорректного отображения приложения или генерации ошибки сервера рекомендуется выполнить следующие проверки.

    Существуют ли ресурсы базы данных?

    В среде IDE в окне «Службы» (CTRL+5; &#8984+5 для Mac) проверьте функционирование сервера MySQL, а также доступность MyNewDatabase и наличие в ней соответствующих табличных данных.

    • Для подключения к серверу баз данных MySQL щелкните правой кнопкой мыши узел сервера MySQL и выберите ‘Подключение’.
    • Если узел подключения ( ) для MyNewDatabase не отображается в окне ‘Службы’ можно создать подключение, щелкнув правой кнопкой мыши узел драйвера MySQL ( ) и выбрав ‘Подключение с помощью’. В появившемся диалоговом окне укажите требуемые подробные сведения.

    Поля в диалоговом окне «Новое подключение к базе данных» зеркально отражают строку URL в параметре «Показать URL JDBC». Таким образом, если известен URL (например, jdbc:mysql://localhost:3306/MyNewDatabase ), можно вставить его в поле «Показать URL JDBC». При этом остальные поля заполняются автоматически.

  • Чтобы убедиться, что таблицы Subject и Counselor существуют и содержат образцы данных, разверните узел подключения MyNewDatabase ( ) и найдите узел каталога MyNewDatabase ( ). Для просмотра существующих таблиц разверните узел каталога. Табличные данные можно просмотреть, щелкнув правой кнопкой мыши узел таблицы и выбрав ‘Просмотреть данные’.
  • Существуют ли на сервере пул подключений и источник данных?

    После развертывания приложения на сервере GlassFish файл проекта glassfish-resources.xml должен содержать инструкции для сервера по созданию ресурсов и пула подключения JDBC. Их наличие можно проверить в узле «Серверы» в окне «Службы».

    • Разверните узел «Серверы» > «Сервер GlassFish» > «Ресурсы». Разверните узел «JDBC Resources» (Ресурсы JDBC), чтобы увидеть источник данных jdbc/IFPWAFCAD , созданный из файла glassfish-resources.xml . Разверните узел «Пул подключения», чтобы увидеть пул подключения IfpwafcadPool , созданный из файла glassfish-resources.xml . Подробное описание приведено выше.

    Доступен ли MySQL Connector/драйвер J для сервера GlassFish?

    Проверьте, что на сервере GlassFish выполнено развертывание драйвера MySQL Connector/J. Соответствующее описание приведено в разделе Добавление файла JAR драйвера базы данных на сервер.

    • Найдите на компьютере папку установки сервера GlassFish и откройте подпапку GlassFish domains/domain1/lib . В ней должен находиться файл mysql-connector-java-5.1.6-bin.jar .

    Защищена ли база данных паролем?

    Необходимо защитить базу данных паролем, чтобы при выполнении упражнений данного учебного курса источник данных сервера GlassFish работал корректно. При использовании учетной записи MySQL root по умолчанию с пустым паролем с помощью командной строки можно установить другой пароль.

    • Для установки пароля nbuser в командной строке откройте в системе MySQL каталог bin и введите следующие данные: Дополнительные сведения приведены в официальном справочном руководстве по работе с MySQL: Защита исходных учетных записей MySQL.

    Корректно ли установлены значения свойств пула подключений?

    Проверьте правильность работы пула подключений для сервера.

    1. Откройте окно «Службы» (CTRL+5; &#8984+5 для Mac) и разверните узел «Серверы.
    2. В контекстном меню узла «Сервер GlassFish» выберите «Просмотр консоли администратора».
    3. При отображении соответствующего запроса введите имя пользователя и пароль. Имя пользователя и пароль можно посмотреть в Диспетчере серверов.
    4. В дереве в левой части консоли разверните узел «Ресурсы > JDBC > Пулы подключений > IfpwafcadPool «. В главном окне отображаются подробные сведения о пуле подключений IfpwafcadPool .
    5. Нажмите кнопку «Ping». Если пул подключений настроен правильно, отображается сообщение Ping Succeeded .
    6. Если выполнение ping-тестирования завершается неуспешно, откройте вкладку «Дополнительные свойства» для проверки правильности настройки указанных значений свойств.

    Дополнительные сведения

    Дополнительные сведения о развертывании веб-приложений Java приведены в следующих материалах.

    • Статьи и руководства по NetBeans
      • Соединение с базой данных MySQL в IDE NetBeans. Описывает основы работы с базой данных MySQL в среде IDE.
      • Введение в JavaServer Faces 2.x. Вводный учебный курс по работе с архитектурой JSF в веб-проекте Java.
      • Введение в инфраструктуру Spring В рамках вводного учебного курса рассматривается процедура создания веб-приложения MVC с использованием инфраструктуры Spring.
    • Связь с базами данных Java (JDBC)
      • Обзор JDBC
      • Начало работы с API JDBC
      • Учебные курсы Java: основы JDBC
    • Библиотека стандартных тегов JavaServer Pages (JSTL)
      • Библиотека стандартных тегов JavaServer Pages (официальная страница продукта)
    • Имена Java и интерфейс каталогов (JNDI)
      • Базовые технологии Java SE — Имена Java и интерфейс каталогов
      • Учебный курс по JNDI
      • Учебные курсы Java: Имена Java и интерфейс каталогов
    Мастер Йода рекомендует:  Big Data размер имеет значение
    Добавить комментарий