Основы JDBC в Java

JDBC программный интерфейс для взаимодействия Java приложения и базы данных.

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

Example

В JDBC есть три основных класса для работы с базой:

  • Connection – для установки соединения с базой.
  • Statement – для выполнения sql запросов.
  • ResultSet – для получения результатов запроса.

Пример программы:

import java.sql.*; public class JDBCApp { public static void main(String[] args) throws ClassNotFoundException, SQLException { //В метод Class.forName нужно передать //драйвер mysql благодаря которому DriverManager //будет понимать что мы пытаемся подключиться //именно к mysql базе так как базы бывают разные. Class.forName(“com.mysql.cj.jdbc.Driver”); //В метод getConnection передаем ссылку //на базу, имя пользователя и пароль mysql //таким образом устанавливается соединение //текущей программы JDBCApp с базой данных Connection connection = DriverManager.getConnection( “jdbc:mysql://localhost/storage”, “root”, “07998MSD”); //Чтобы передать запрос базе данных нужен //объект statement, который возвращается из метода //createStatement нашего соединения (connection) Statement statement = connection.createStatement(); //executeUpdate – для обновления, создания //или удаления чего в базе данных. //Например создаем таблицу Books ниже. statement.executeUpdate(“Create table Books ” +”(id middleint not null auto_increment, ” +”name VARCHAR(30) not null, ” +”author VARCHAR(30) not null, PRIMARY KEY (id));”); //И добавим пару книг в таблицу statement.executeUpdate(“INSERT INTO Books ” +”(name, author) VALUES (‘LOTR’, ” +”‘Tolkien’);”); statement.executeUpdate(“INSERT INTO Books ” +”(name, author) VALUES (‘Camera Obscura’, ” +”‘Nabokov’);”); //далее можем передавать запрос //через метод executeQuery, который возвращает //объект ResultSet, который //содержит результат запроса ResultSet resultSet = statement.executeQuery( “SELECT * FROM Books”); System.out.println(“\nBooks:”); //То есть как видим мы просто работаем с базой //теми же самыми SQL запросами, которыми мы //пользовались и раньше, но теперь через //Java программу. //next проходит по строкам таблицы базы данных while (resultSet.next()) { //в метод getType передаем номер атрибута //или имя атрибута строки таблицы int id = resultSet.getInt(“id”); String name = resultSet.getString(“name”); String author = resultSet.getString(“author”); System.out.println(“\n====================\n”); System.out.println(“id: ” + id); System.out.println(“name: ” + name); System.out.println(“author: ” + author); } System.out.println(“\n====================\n”); System.out.println(“Closing connection and ” + “releasing resources…”); resultSet.close(); statement.close(); connection.close(); } }

Вывод:

Видим на консоли добавленные нами книги в базу данных.

Транзакции в SQL и JDBC

Полное руководство по транзакциям в JDBC: работа с commit и rollback, управление группами SQL-запросов и обработка ошибок для сохранения целостности данных.
Time to read: 13

Savepoint в JDBC транзакциях

Используйте Savepoint в JDBC для точечного отката транзакций. Узнайте, как отменять только часть SQL-запросов при ошибках, сохраняя предыдущие изменения в базе данных.
Time to read: 13

Изоляция транзакций. Грязное чтение

Узнайте, что такое грязное чтение в транзакциях SQL и JDBC. Разберитесь с уровнями изоляции TRANSACTION_READ_COMMITTED и TRANSACTION_READ_UNCOMMITTED на практических примерах.
Time to read: 15