Добавление, изменение и удаление данных

Последнее обновление: 08.08.2018

Для добавления, редактирования и удаления данных мы можем ипользовать рассмотренный в прошлой теме метод 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:

executeUpdate в Java JDBC

Редактирование

Изменим строки в таблице, например, уменьшим цену товара на 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.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850