Как подключить mysql к java - IT Справочник
Llscompany.ru

IT Справочник
21 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как подключить mysql к java

Как использовать базу данных MySQL в Java

    Переводы, 24 июня 2015 в 13:46

В этой статье мы научимся подключаться к базе данных MySQL из Java-кода и выполнять простые запросы для получения и обновления данных. Для того, чтобы получить доступ к базе данных, мы будем использовать JDBC (Java Database Connectivity) API, который входит в стандартную библиотеку Java. JDBC позволяет подключиться к любой базе данных: Postgres, MySQL, SQL Server, Oracle и т. д. — при наличии соответствующей реализации драйвера, необходимого для подключения. Для базы данных MySQL мы будем использовать драйвер Type 4 JDBC из пакета mysql-connector-java-5.1.23-bin.jar . Он написан на чистой Java, а значит, нам не понадобятся какие-либо нативные библиотеки или ODBC-мост. Все, что нам надо будет сделать — это положить JAR-файл в директорию, содержащуюся в CLASSPATH. JAR-файл содержит класс com.mysql.jdbc.Driver , необходимый для подключения к MySQL. Если его не окажется в CLASSPATH, во время выполнения программы выбросится исключение java.lang.ClassNotFoundException , поэтому убедитесь, что вы правильно настроили пути.

Кстати, если вы ищете хорошую книгу по использованию JDBC, обратите внимание на Practical Database Programming with Java (Ying Bai). Это относительно новая книга, и в ней рассматриваются две самые популярные базы данных: Oracle и SQL Server 2008. В книге используется IDE NetBeans для примеров и описываются все инструменты, необходимые для работы с базами данных в Java. Это отличная книга для начинающих и опытных программистов.

Подключаем базу данных MySQL с помощью JDBC

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

  1. Строка подключения JDBC (например: jdbc:mysql://localhost:3306/test ).
  2. Имя пользователя (root).
  3. Пароль (root).
  4. База данных с некоторым количеством таблиц для примера (например, база данных книг).

Строка подключения для MySQL начинается с jdbc:mysql . Это название протокола соединения, за которым следуют хост и порт подключения, на которых запущена база данных. В нашем случае это localhost с портом по умолчанию 3306 (если вы его не поменяли при установке). Следующая часть — test — имя базы данных, которая уже существует в MySQL. Мы можем создать таблицу Books :

и наполнить ее хорошими книгами:

Программа на Java, которая использует базу данных

Теперь давайте напишем программу на Java, которая будет подключаться к нашей базе данных, запущенной на localhost . Важно помнить о том, что необходимо закрывать соединение, запросы и результат выполнения после завершения работы с ними. Также важно закрывать их в finally-блоке, со своей try/catch оберткой, поскольку сам метод close() может кинуть исключение, что приведет к утечке ресурсов. За подробной информацией вы можете обратиться к этой статье. Кроме того, вы можете использовать обертку try-with-resource, которая появилась в Java 7. Более того, это стандартный способ работы с ресурсами в Java 1.7.

При первом запуске у вас, возможно, будет ошибка No suitable driver found for jdbc:mysql , если драйвера MySQL нет в CLASSPATH:

Добавим нужный JAR-файл в путь и снова запустим программу. Другая частая ошибка — указать таблицу в строке соединения: jdbc:mysql://localhost:3306/test/book . В этом случае вылетит следущее исключение:

Успешный запуск программы выведет на экран следующее:

Результат верный, поскольку у нас в таблице только две книги: «Effective Java» и «Java Concurrency in Practice».

Кстати, если у вас был драйвер при компиляции, но отсутствует при запуске, вы получите исключение java.lang.ClassNotFoundException: com.mysql.jdbc.Driver . О том, как исправить эту ошибку, вы можете прочитать здесь.

Получаем данные с помощью SELECT-запроса в JDBC

Для получения данных из БД вы можете выполнить SELECT-запрос. В первом примере мы уже его использовали, но получили только количество строк. Теперь мы вернем сами строки. Большая часть программы останется без изменений, за исключением SQL-запроса и кода, возвращающего данные из объекта ResultSet :

Этот код выведет на экран следующее:

Тут есть пара моментов, на которые следует обратить внимание. Метод rs.getInt(1) используется для получения столбца с целочисленным типом, в нашем случае это столбец «id». Индексы в JDBC начинаются с единицы, поэтому rs.getInt(1) вернет значение первого столбца как целое число. В случае, если вы укажете неверный индекс (многие разработчики вызывают rs.getInt(0) для получения первого столбца), выбросится исключение InvalidColumnIndexException . Доступ к столбцам по индексу чреват ошибками, поэтому лучше использовать имя столбца, например, rs.getInt(«id») . Подробнее об этом вы можете прочитать в этой статье. Метод getString() используется для получения строковых значений из базы (например, VARCHAR ). Цикл будет выполняться, пока rs.next() не вернет false . Это значит, что строки закончились. В нашем случае в таблице две строки, поэтому цикл выполнится два раза, выводя информацию о книгах из таблицы на экран.

Добавляем данные с помощью INSERT-запроса в JDBC

Добавление данных мало отличается от их получения: мы просто используем INSERT-запрос вместо SELECT-запроса и метод executeUpdate() вместо executeQuery() . Этот метод используется для запросов INSERT, UPDATE и DELETE, а также для SQL DDL выражений, таких как CREATE, ALTER или DROP. Эти команды не возвращают результата, поэтому мы убираем все упоминания ResultSet ‘а в коде и изменяем запрос соответственно:

После запуска программы вы можете проверить таблицу в СУБД. На этот раз вы увидите три записи в таблице:

Теперь вы умеете подключаться к MySQL из Java-приложения и выполнять SELECT, INSERT, DELETE и UPDATE-запросы так же, как и в MySQL GUI. Для подключения мы используем объект Connection , для чтения результатов запроса — ResultSet . Убедитесь перед подключением, что сервер MySQL запущен и mysql-connector-java-5.1.17-bin.jar находится в CLASSPATH, чтобы избежать ClassNotFoundException .

Когда разберетесь с подключением и простыми запросами, имеет смысл изучить, как использовать подготавливаемые запросы (Prepared Statement) в Java для избежания SQL-инъекции. В боевом коде всегда следует использовать подготавливаемые запросы и связывание переменных.

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

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

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

13 Ответов

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

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

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

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

Читать еще:  Java lang interruptedexception

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Использование шаблона Singleton для соединения DB-плохой подход. См. среди прочих вопросов: http://stackoverflow.com/q/9428573/ . Это ошибка #1 стартеров.

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

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

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

Инициализация констант базы данных

Создайте постоянные свойства базы данных имя пользователя, пароль, URL и драйверы, ограничение опроса и т.д.

Инициализация соединения и свойств

После того, как соединение установлено, его лучше хранить для повторного использования.

Создание Свойств

Объект свойства содержит информацию о соединении, проверьте, установлено ли оно уже.

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

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

Отключите базу данных

Как только вы закончите работу с базой данных, просто закройте соединение.

Все вместе

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

Как пользоваться?

Инициализируйте класс базы данных.

Где-то еще в вашем коде .

Это все 🙂 если что-то улучшить, отредактируйте его! Надеюсь, это будет полезно.

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

Добавьте обработку исключений, конфигурацию и т.д. по вкусу.

MySQL JDBC связь с useSSL.

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

вам нужно иметь mysql разъем jar в вашем classpath.

в Java JDBC API делает все с базами данных. используя JDBC, мы можем написать Java приложений к
1. Отправка запросов или обновление SQL до DB(любая реляционная база данных) 2. Извлечение и обработка результатов из DB

с помощью следующих трех шагов мы можем получить данные из любой базы данных

Подключение базы данных MySql к Java приложению. Простой сайт на Java часть 3

Мы продолжаем писать простой сайт на языке Java и сегодня настало время подключить базу данных к нашему веб приложению. Подключать мы будем MySql базу данных, но схема будет работать для любой другой реляционной базы. Мы будем использовать jdbc драйвер для подключения. Он очень прост и понятен в обращении.

Читать еще:  Класс properties java

Хотя реальное приложение Вы скорее всего не будете подключать к базе данных через jdbc драйвер — этот пример даст Вам понимание как работать с базой данных.

Для начала откроем наше приложение в том виде, в котором мы его оставили с предыдущей статьи. Напомню, что мы подключили статические ресурсы и добавили внешний вид. Хочу сразу уточнить, что так приложение писать не нужно. Я имею ввиду такую последовательность. База данных — это основа всего приложения. С ее проектирования и нужно начинать. Я начал именно с ней, но выложил статьи в разной последовательности. О внешнем виде нужно думать в последнюю очередь.

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

Она очень примитивна и проста. Ее цель показать, как работать с такими вещами.

К стати говоря, создал эту схему я в MySql Workbench — это бесплатное приложение, в котором можно проектировать базу данных, а потом експортировать все это в код. В конце статьи есть подробное видео, где все это проделывается. Поэтому на это мы не будем тратить время.

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

Я намерено опускаю такие термины как EJB, JPA, Entity POJO, хотя мы используем или будем из использовать. Например классы-сущности, которые мы создадим для представления БД — это Entity. Дело в том, что на просторах Интернета есть очень много ресурсов, где все это четко излагается, но очень мало ресурсов, которые действительно показывают: как создать веб приложение с нуля и до запуска в сети Интернет. Я лично, когда начинал изучать веб для джава находил только отдельный статьи, в которых показывались отдельные части веб приложений. В нашей теме, если Вы будете идти от начало и до конца, то сможете написать самое простое, но полноценное приложение на Java, а уже когда начнете изучать все далее, эта практика поможет Вам изучать технологии и фреймворки легче.

Теперь к практике. Создайте в своем приложении новый пакет entity. Должна получиться такая структура:

Теперь в новом пакете нужно создать четыре класса: Article, Category, Role, Users имплементировать интерфейс Serializable для успешной передачи по сети. В видео ниже я использую Netbeans и его стандартные инструменты для генерации этих классов из базы данных. Но все же, я советую для начинающих сделать это вручную, чтобы Вы понимали где откуда берется. В каждом созданном классе нужно создать приватные поля, которые соответствуют названиям из базы данных. Для доступа к полям нужно создать геттеры и сеттеры. Для сравнения объекта нужно создать методы equals hashCode их можно с генерировать в еклипсе. Не плохо было бы добавить метод toString. Приведу пример на Article.

Вот, как выглядит наша таблица article в базе данных. Как видим у нее есть идентификатор id, поля title, body, которые будут хранить соответственно заголовок статьи и текст статьи. Есть поля category_id, users_id, которые будут хранить информацию о категории и пользователи соответственно. Эти поля — идентификаторы из таблиц category и users. Так нам и нужно построить класс Article:

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

234 abson [2010-05-15 10:39:00]

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

java mysql jdbc

12 ответов

153 Решение Sean Owen [2010-05-15 12:10:00]

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

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

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

370 BalusC [2010-05-15 16:55:00]

Вот пошаговое объяснение, как установить 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, просто не помещается в путь к классам.

Читать еще:  Java sql batchupdateexception

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

Если вы получаете 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.

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

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 <
Class.forName(driver); /*forName-загрузка драйвера для базы данных*/
con = DriverManager.getConnection(url, login, pass);
> catch (ClassNotFoundException ex) /*Если нет драйвера */ <
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 columnNames; /*Имена колонок*/
private Vector > tableData; /*Данные*/
protected Vector vColClass; /*Классы колонок*/
public modelMySQL () <
super ();
vColClass = new Vector ();
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 . В следующей статье мы познакомимся с этой СУБД и встроим в нашу программу. На этом сегодня и остановимся. Всем пока.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector