English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Пример объекта JDBC Statement

Вот пример, который использует следующие три запроса и инструкции open и close -

  • boolean execute(String SQL): возвращает true, если можно получить объект ResultSet, в противном случае false. Используйте этот метод для выполнения SQL DDL операторов или когда вам нужно использовать реальный динамический SQL.

  • int executeUpdate(String SQL): возвращает количество строк,affected SQL оператором. Используйте этот метод для выполнения SQL операторов, таких как INSERT, UPDATE или DELETE.

  • ResultSet executeQuery(String SQL): возвращает объект ResultSet. Используйте этот метод, когда вы хотите получить результат集, как SELECT оператор.

Этот пример кода написан на основе环境和 базы данных, описанных в предыдущих главах.

Скопируйте и вставьте следующий пример в JDBCExample.java, как compile и run:

// шаг 1: импортируем необходимые пакеты
import java.sql.*;
public class JDBCExample {
   // имя JDBC драйвера и URL базы данных
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost/EMP";
   // данные базы данных
   static final String USER = "username";
   static final String PASS = "password";
   
   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      // шаг 2: регистрируем JDBC драйвер
      Class.forName("com.mysql.jdbc.Driver");
      // шаг 3: устанавливаем соединение
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      // шаг 4: выполнение запроса
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      String sql = "UPDATE Employees set age=30 WHERE id=103";
      
      // проверим, возвращает ли оно настоящий результат.
      Boolean ret = stmt.execute(sql);
      System.out.println("Return value is : " + ret.toString() );
      // обновим запись с ID = 103, изменив возраст;
      int rows = stmt.executeUpdate(sql);
      System.out.println("Rows impacted : " + rows );
      // выберем все записи и покажем их.
      sql = "SELECT id, first, last, age FROM Employees";
      ResultSet rs = stmt.executeQuery(sql);
      // шаг 5: извлечение данных из набора результатов
      while (rs.next()) {
         // поиск по имени столбца
         int id = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");
         // отображение значений
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      // шаг 6: очистка окружающей среды
      rs.close();
      stmt.close();
      conn.close();
   }
      // обработка ошибок JDBC
      se.printStackTrace();
   }
      // обработка ошибки Class.forName
      e.printStackTrace();
   }
      // для закрытия ресурсов
      try{
         if (stmt != null)
            stmt.close();
      }
      
      }
      try{
         if(conn!=null)
            conn.close();
      }
         se.printStackTrace();
      }
   }
   System.out.println("До свидания!");
//Конец main
//Конец JDBCExample

Теперь давайте скомпилируем вышеуказанный пример, как показано ниже:

C:\>javac JDBCExample.java
C:\>

Во время выполненияJDBCExampleОно будет генерировать следующие результаты -

C:\>java JDBCExample
Соединение с базой данных...
Создание запроса...
Возвратное значение: false
Влияет на строки: 1
ID: 100, Возраст: 18, Имя: Zara, Фамилия: Ali
ID: 101, Возраст: 25, Имя: Mahnaz, Фамилия: Fatma
ID: 102, Возраст: 30, Имя: Zaid, Фамилия: Khan
ID: 103, Возраст: 30, Имя: Sumit, Фамилия: Mittal
До свидания!
C:\>