Для добавления, редактирования и удаления данных мы можем ипользовать рассмотренный в прошлой теме метод executeUpdate. С помощью результата метода мы можем проконтроллировать, сколько строк было добавлено, изменено или удалено.
Так, возьмем созданную в прошлой теме таблицу Products:
CREATE TABLE Products ( Id INT PRIMARY KEY AUTO_INCREMENT, ProductName VARCHAR(20), Price INT )
И добавим в эту таблицу несколько объектов:
import java.sql.*; public class Program{ public static void main(String[] args) { try{ String url = "jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false"; String username = "root"; String password = "password"; Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = DriverManager.getConnection(url, username, password)){ Statement statement = conn.createStatement(); int rows = statement.executeUpdate("INSERT Products(ProductName, Price) VALUES ('iPhone X', 76000)," + "('Galaxy S9', 45000), ('Nokia 9', 36000)"); System.out.printf("Added %d rows", rows); } } catch(Exception ex){ System.out.println("Connection failed..."); System.out.println(ex); } } }
Для добавления данных в БД применяется команда INSERT. В данном случае в таблицу Products добавляется три объекта. И после выполнения программы на консоли мы увидим число добавленных объектов:
C:\Java>javac Program.java C:\Java>java -classpath c:\Java\mysql-connector-java-8.0.11.jar;c:\Java Program Added 3 rows C:\Java>
А добавленные строки мы можем увидеть в таблице в бд MySQL:
Изменим строки в таблице, например, уменьшим цену товара на 5000 единиц. Для изменения применяется команда UPDATE:
import java.sql.*; public class Program{ public static void main(String[] args) { try{ String url = "jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false"; String username = "root"; String password = "password"; Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = DriverManager.getConnection(url, username, password)){ Statement statement = conn.createStatement(); int rows = statement.executeUpdate("UPDATE Products SET Price = Price - 5000"); System.out.printf("Updated %d rows", rows); } } catch(Exception ex){ System.out.println("Connection failed..."); System.out.println(ex); } } }
Удалим один объект из таблицы с помощью команды DELETE:
import java.sql.*; public class Program{ public static void main(String[] args) { try{ String url = "jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false"; String username = "root"; String password = "password"; Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = DriverManager.getConnection(url, username, password)){ Statement statement = conn.createStatement(); int rows = statement.executeUpdate("DELETE FROM Products WHERE Id = 3"); System.out.printf("%d row(s) deleted", rows); } } catch(Exception ex){ System.out.println("Connection failed..."); System.out.println(ex); } } }
Как видно из примеров, не так сложно взаимодействовать с базой данных. Достаточно передать в метод executeUpdate нужную команду SQL.