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

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

Введение

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

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