Запросить зарплату преподавателя с использованием PreparedStatement

MySQLMySQLBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь использовать JDBC (Java Database Connectivity) для запроса к базе данных MySQL с использованием PreparedStatement. Цель - извлечь имена и зарплаты преподавателей, чья зарплата выше 6000, из таблицы instructor в базе данных edusys.

👀 Предварительный просмотр

Изображение предварительного просмотра проекта JDBC

🎯 Задачи

В этом проекте вы научитесь:

  • Как устанавливать соединение с базой данных с использованием JDBC
  • Как создавать PreparedStatement с параметром-заполнителем
  • Как выполнять запрос и обрабатывать результирующий набор
  • Как обрабатывать исключения и правильно закрывать ресурсы

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться в основах JDBC и как использовать его для взаимодействия с базой данных MySQL
  • Написать Java-код, который использует PreparedStatement для выполнения SQL-запроса с параметром
  • Извлекать и обрабатывать данные из базы данных с использованием JDBC
  • Реализовать обработку ошибок и управление ресурсами в приложении на JDBC

Запустите службу MySQL и импортируйте базу данных

В этом шаге вы научитесь запускать службу MySQL и импортировать базу данных edusys.sql. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. Запустите службу MySQL. Вы можете сделать это, выполнив следующую команду в терминале:

    sudo service mysql start
  2. Импортируйте базу данных edusys.sql в MySQL. Вы можете сделать это, выполнив следующую команду в терминале:

    mysql -u root < /home/labex/project/edusys.sql

Эта команда импортирует базу данных edusys.sql в MySQL с использованием пользователя root.

Создайте директорию для Java-проекта

В этом шаге вы научитесь создавать директорию для Java-проекта. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. Создайте новую директорию для вашего Java-проекта:

    mkdir /home/labex/project/salary
    cd /home/labex/project/salary
  2. Создайте необходимые поддиректории для вашего проекта:

    mkdir src lib bin
    • Директория src будет содержать ваши файлы исходного кода на Java.
    • Директория lib будет содержать любые внешние библиотеки, которые использует ваш проект.
    • Директория bin будет содержать скомпилированные файлы классов на Java.

Переместите драйвер JDBC и Java-файл

В этом шаге вы научитесь перемещать драйвер JDBC и файл JDBCQueryByPreparedStatement.java в соответствующие директории. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. Переместите драйвер JDBC в директорию lib:

    mv /home/labex/project/mysql-connector-java-8.0.21.jar /home/labex/project/salary/lib
  2. Переместите файл JDBCQueryByPreparedStatement.java в директорию src:

    mv /home/labex/project/JDBCQueryByPreparedStatement.java /home/labex/project/salary/src

Реализуйте систему запросов

В этом шаге вы реализуете код для системы запросов информации о университете в файле JDBCQueryByPreparedStatement.java. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. Откройте файл JDBCQueryByPreparedStatement.java в текстовом редакторе.

  2. Добавьте следующий код в метод main():

         try {
             String url = "jdbc:mysql://localhost:3306/edusys";
             String username = "root";
             String password = "";
             // Установите соединение с базой данных
             Connection connection = DriverManager.getConnection(url, username, password);
    
             // Подготовьте SQL-выражение с параметром-заполнителем
             String sql = "SELECT name, salary FROM instructor WHERE salary >?";
             PreparedStatement preparedStatement = connection.prepareStatement(sql);
    
             // Установите значение параметра
             preparedStatement.setDouble(1, 6000);
    
             // Выполните запрос
             ResultSet resultSet = preparedStatement.executeQuery();
    
             // Пройдитесь по результирующему набору
             while (resultSet.next()) {
                 String name = resultSet.getString("name");
                 double salary = resultSet.getDouble("salary");
                 System.out.println(name + " " + salary);
             }
    
             // Закройте ресурсы
             resultSet.close();
             preparedStatement.close();
             connection.close();
         } catch (SQLException e) {
             e.printStackTrace();
         }

    Этот код подключается к базе данных MySQL, предлагает пользователю выбрать таблицу для запроса, выполняет соответствующий SQL-запрос и выводит результаты в консоль.

  3. Сохраните файл JDBCQueryByPreparedStatement.java.

Запустите приложение

В этом последнем шаге вы запустите приложение.

  1. Скомпилируйте Java-файл:
javac -d bin/ src/JDBCQueryByPreparedStatement.java
  1. Запустите приложение:
java -cp bin/:lib/mysql-connector-java-8.0.21.jar JDBCQueryByPreparedStatement

Вы должны увидеть следующий вывод:

Srinivasan 65000.0
Wu 90000.0
Mozart 40000.0
Einstein 95000.0
El Said 60000.0
Gold 87000.0
Katz 75000.0
Califieri 62000.0
Singh 80000.0
Crick 72000.0
Brandt 92000.0
Kim 80000.0

Поздравляем! Вы успешно завершили проект.

✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.