
2к4с Объектно-ориентированное программирование - КР / ООП / 1610631470_ПР 3
.pdfАПРОБАЦИЯ
Балаковский инженерно-технологический институт — филиал федерального государственного автономного образовательного учреждения высшего профессионального образования
«Национальный исследовательский ядерный университет «МИФИ»
РАБОТА С БАЗАМИ ДАННЫХ НА ЯЗЫКЕ JAVA
Методические указания к выполнению практических работ по дисциплине
«Объектно-ориентированное программирование» для студентов всех форм обучения по направлению 09.03.02
Одобрено редакционно-издательским советом Балаковского инженерно-
технологического института
Балаково 2015
Цель работы: изучение основных принципов работы с базами данных средствами Java, применение основных операций: создание, чтение, изме-
нение и удаление.
Основные понятия
Для работы с базами данных подключают специализированную биб-
лиотеку классов для конкретной СУБД - ORACLE, MySQL и т.п. или ис-
пользуют интерфейс ODBC.
В обоих случаях применяется технология JDBC (Java Database Connectivity), представляющая собой программный интерфейс для выпол-
нения SQL-запросов к реляционным базам данных из Java-программ. Биб-
лиотека классов JDBC находится в пакете java.sql.
Для соединения с базой данных MySQL используется MySQL
Connector/J (http://dev.mysql.com/downloads/connector/j/). Этот файл нужно поместить в каталог расширений JRE, например, в C:\Program Files\Java\jre8\lib\ext.
Рассмотрим простой пример работы с СУБД MySQL. Консольное приложение печатает все фамилии из таблицы сотрудников.
Сначала подключим нужные пакеты. Из пакета MySQL достаточно подключить единственный класс - Driver.
import java.sql.*;
import com.mysql.jdbc.Driver;
import java.io.*;
В функции main определим переменную типа Connection. Объект
Connection нужен для создания соединения с базой данных.
Дальнейший код помещен в блок try, поскольку некоторые из ис-
пользуемых методов могут вызывать исключения.
Регистрируем драйвер с помощью статического метода registerDriver
класса DriverManager.
2
DriverManager.registerDriver(new
com.mysql.jdbc.Driver());
Создаем соединение с базой данных. Обратите внимание, мы не со-
здаем объект с помощью операции new. Метод getConnection сам создает объект и возвращает ссылку на него.
c = DriverManager.getConnection
("jdbc:mysql://localhost/mycross", "root", "");
Параметры метода getConnection:
1.Строка подключения:
jdbc:mysql - имя протокола подключения,
localhost - имя хоста,
mycross - имя базы данных.
2.Логин для подключения к базе данных.
3.Пароль для подключения к базе данных.
После успешного подключения создаем объект Statement, который будет использоваться для выполнения запросов к базе данных (здесь тоже не используем new):
Statement s = c.createStatement();
Объявляем переменную ResultSet для получения результата запроса:
ResultSet rs = null;
Выполняем запрос:
rs = s.executeQuery("SELECT * FROM personal");
Заметим, что для выполнения различных запросов, связанных с из-
менением данных (INSERT, UPDATE, DELETE и пр.), следует применять метод executeUpdate, например,
s.executeUpdate("DELETE FROM personal");
Затем в цикле последовательно перебираем и печатаем строки ре-
зультата:
while( rs.next() )
3
{
str=rs.getString("name");
System.out.println(str);
}
Перед выходом из программы закрываем объекты ResultSet и
Connection.
Справочная информация по работе с SQLite представлена на сайте: https://www.sqlitetutorial.net/sqlite-java/
Пример соединения с SQLite представлен далее:
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:C:\\BD.db");
Statement stmt = con.createStatement(); String sql = "select * from Users"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) {
mtm.insertRow(mtm.getRowCount()-1, new String[]{rs.getString("id"),rs.getString("username"),rs.getString("number"),rs.ge tString("adress"),rs.getString("tstay")});
}
stmt.close();
con.close();
}catch (Exception e) { JOptionPane.showMessageDialog(this, "у нас проблема"); System.err.println(e);
}
Пример интерфейса приложения в конструкторе представлен далее:
4

Технология выполнения работы
1.Рассмотреть работу с датой и временем в Java.
2.Рассмотреть переключение между фреймами и панелями.
3.Создать подключение базы данных средствами Open Database Connectivity.
4.Настроить мост JDBC-ODBC.
5.Создать SQL-запросы на добавление, изменение и чтение данных
из БД.
6.Создать приложения, реализующее добавление и выгрузку дан-
ных из БД в таблицу.
7. При выполнении работы можно использовать не MySQL, а
SQLite.
5
Вопросы для самоконтроля
1.Опишите классы Calendar и Date.
2.Для чего используется класс SimpleDateFormat?
3.Как скрыть или отобразить фрейм в Java?
4.Что такое JDBC?
5.Что такое ODBC?
6.Для чего используют коннекторы БД в Java?
7.Приведите пример SQL-запроса на чтение данных в БД.
8.Приведите пример SQL-запроса на добавление данных в БД.
9.Приведите пример SQL-запроса на изменение данных в БД.
6