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

Сортировка данных JDBC

Эта глава предоставляет примеры того, как использовать JDBC-приложения для сортировки записей в таблице. Это будет использоватьascиdescКлючевые слова для сортировки записей по возрастанию или убыванию. Перед выполнением следующего примера убедитесь, что у вас есть следующие условия:

  • Чтобы выполнить следующий пример, вы можете использоватьИмя пользователяиПарольЗамените его на фактическое имя пользователя и пароль.

  • Ваш MySQL или любая база данных, которую вы используете, уже запущена и работает.

Необходимые шаги

Для создания новой базы данных с помощью JDBC приложения необходимо выполнить следующие шаги -

  • Импорт пакета:Требуется включить пакет, содержащий классы JDBC для программирования базы данных. Обычно, используется import java.sql.* Достаточно.

  • Регистрация JDBC драйвера: Требуется инициализировать драйвер, чтобы можно было открыть канал связи с базой данных.

  • Установить соединение:Необходимо использовать DriverManager.getConnection() Метод для создания объекта Connection, который представляет физическое соединение с сервером базы данных.

  • Выполнить запрос:Для построения и выполнения SQL-запросов для сортировки записей в таблице необходимо использовать объекты типа Statement. Эти запросы используютascиdescПредложения сортируют данные в порядке возрастания и убывания.

  • Очистка среды: Необходимо явно закрывать все ресурсы базы данных, а не зависеть от garbage collection JVM.

Пример кода

Скопируйте следующий пример и вставьте его в JDBCExample.java, скомпилируйте и запустите следующим образом -

// шаг 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/STUDENTS";
   // данные базы данных
   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 a selected database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      System.out.println("Connected database successfully...");
      
      // 步骤4:执行查询
      System.out.println("Creating statement...");
      stmt = conn.createStatement();
      // 按名字升序提取记录。
      System.out.println("Fetching records in ascending order...");
      String sql = "SELECT id, first, last, age FROM Registration" +
                   "ORDER BY first ASC";
      ResultSet rs = stmt.executeQuery(sql);
      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);
      }
      // 按名字降序提取记录。
      System.out.println("Fetching records in descending order...");
      sql = "SELECT id, first, last, age FROM Registration" +
                   "ORDER BY first DESC";
      rs = stmt.executeQuery(sql);
      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);
      }
      rs.close();
   }catch(SQLException se){
      // 处理 JDBC 错误
      se.printStackTrace();
   }
      // 处理 Class.forName 错误
      e.printStackTrace();
   }
      // 最终阻止用于关闭资源
      try{
         if (stmt != null)
            conn.close();
      }catch(SQLException se){
      // Ничего не было сделано
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }
   }
   System.out.println("До свидания!");
//Конец main
//Конец JDBCExample

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

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

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

C:\>java JDBCExample
Подключение к выбранной базе данных...
Успешное подключение к базе данных...
Создание уровня...
Получение записей в прямом порядке...
ID: 103, Возраст: 28, Имя: Sumit, Фамилия: Mittal
ID: 102, Возраст: 30, Имя: Zaid, Фамилия: Khan
ID: 100, Возраст: 30, Имя: Zara, Фамилия: Ali
Получение записей в обратном порядке...
ID: 100, Возраст: 30, Имя: Zara, Фамилия: Ali
ID: 102, Возраст: 30, Имя: Zaid, Фамилия: Khan
ID: 103, Возраст: 28, Имя: Sumit, Фамилия: Mittal
До свидания!
C:\>