3. Термины и сокращения
3
JDBC Java Database Connectivity
ORM Object Relational Mapping
JPA Java Persistency API
Hibernate популярная библиотека для ORM, implements JPA
DAO Data Access Object
4. Инструменты
4
http://dev.mysql.com/downloads/
MySQL Community Server
MySQL Workbench
MySQL Connector: Connector/J
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
5. JDBC
5
Java Database Connectivity ― API для работы с базами из приложений
на Java
Предназначена для работы с реляционными базами данных
Предоставляет методы для получения и обновления данных
Не зависит от конкретного типа базы
6. JDBC API
Connection
Statement
Объект представляет выражение обращения к базе
ResultSet
6
Объект отвечает за соединение с базой и режим работы с ней
Объект с результатом запроса, который вернула база
7. JDBC Driver Manager
7
Название класса драйвера: com.mysql.jdbc.Driver
Создаем объект драйвера при помощи reflection:
(Driver) Class.forName("com.mysql.jdbc.Driver").newInstance()
java.sql.DriverManager – класс хелпер для работы с драйверами
Регистрируем драйвер:
DriverManager.registerDriver(driver);
8. Connection
8
Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance();
DriverManager.registerDriver(driver);
StringBuilder url = new StringBuilder();
url.
append("jdbc:mysql://"). //db type
append("localhost:"). //host name
append("3306/"). //port
append("db_example?"). //db name
append("user=tully&"). //login
append("password=tully"); //password
// URL: “jdbc:mysql://localhost:3306/lecture_db?user=tully&password=tully”
Connection connection = DriverManager.getConnection(url.toString());
9. Statements
9
JDBC позволяет создавать и выполнять запросы к базе
Update statements: CREATE, DELETE, INSERT…
Query statements: SELECT
Интерфейсы
Statement
PreparedStatement
CallableStatement
Query statements возвращают ResultSet
Update statements возвращают число измененных строк
10. ResultSet
10
Содержит результат запроса
Перемещение по строкам:
next()
previous()
isLast()
Доступ к полям текущей строки:
По имени колонки: getBoolean(String name), getLong(String name)…
По индексу колонки: getBoolean(int index), getLong(int index)…
14. Executor
14
Объект, который содержит методы для работы с запросами
Обработка запроса на создание, вставку, обновление и удаление
execUpdate(Connection connection, String update)
Обработка запроса на получение данных
execQuery(Connection connection, String query, ResultHandler handler)
public interface ResultHandler {
void handle(ResultSet result) throws SQLException;
}
15. Update Statement
15
public static int execUpdate(Connection connection, String update) {
Statement stmt = connection.createStatement();
stmt.execute(update);
int updated = stmt.getUpdateCount();
stmt.close();
return updated;
}
Примеры
execUpdate(connection, "create table users (id bigint auto_increment,
name varchar(256), primary key (id))");
execUpdate(connection, "insert into users (name) values ('tully')");