Abfrage des Lehrergehalts mit PreparedStatement

MySQLMySQLBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du JDBC (Java Database Connectivity) verwendest, um eine MySQL-Datenbank mithilfe eines PreparedStatement abzufragen. Ziel ist es, die Namen und Gehälter von Lehrern abzurufen, deren Gehalt höher als 6000 ist, aus der Tabelle instructor in der Datenbank edusys.

👀 Vorschau

Vorschaubild des JDBC-Projekts

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du eine Datenbankverbindung mit JDBC herstellst
  • Wie du einen PreparedStatement mit einem Parameterplatzhalter erstellst
  • Wie du die Abfrage ausführst und das Ergebnis 集 verarbeitest
  • Wie du Ausnahmen behandelst und Ressourcen richtig schließt

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die Grundlagen von JDBC zu verstehen und wie du es verwendest, um mit einer MySQL-Datenbank zu interagieren
  • Java-Code zu schreiben, der einen PreparedStatement verwendet, um eine SQL-Abfrage mit einem Parameter auszuführen
  • Daten aus einer Datenbank mithilfe von JDBC abzurufen und zu verarbeiten
  • Fehlerbehandlung und Ressourcenverwaltung in einer JDBC-Anwendung umzusetzen

Starte den MySQL-Dienst und importiere die Datenbank

In diesem Schritt lernst du, wie du den MySQL-Dienst startest und die Datenbank edusys.sql importierst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Starte den MySQL-Dienst. Du kannst dies tun, indem du folgenden Befehl in deinem Terminal ausführst:

    sudo service mysql start
  2. Importiere die Datenbank edusys.sql in MySQL. Du kannst dies tun, indem du folgenden Befehl in deinem Terminal ausführst:

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

Dieser Befehl wird die Datenbank edusys.sql unter Verwendung des Benutzers root in MySQL importieren.

Erstelle ein Java-Projektdirectory

In diesem Schritt lernst du, wie du ein Java-Projektdirectory erstellst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Erstelle ein neues Verzeichnis für dein Java-Projekt:

    mkdir /home/labex/project/salary
    cd /home/labex/project/salary
  2. Erstelle die erforderlichen Unterverzeichnisse für dein Projekt:

    mkdir src lib bin
    • Das Verzeichnis src wird deine Java-Quellcode-Dateien enthalten.
    • Das Verzeichnis lib wird alle externen Bibliotheken enthalten, die dein Projekt verwendet.
    • Das Verzeichnis bin wird die kompilierten Java-Klassen-Dateien enthalten.

Verschiebe den JDBC-Treiber und die Java-Datei

In diesem Schritt lernst du, wie du den JDBC-Treiber und die Datei JDBCQueryByPreparedStatement.java in die entsprechenden Verzeichnisse verschiebst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Verschiebe den JDBC-Treiber in das Verzeichnis lib:

    mv /home/labex/project/mysql-connector-java-8.0.21.jar /home/labex/project/salary/lib
  2. Verschiebe die Datei JDBCQueryByPreparedStatement.java in das Verzeichnis src:

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

Implementiere das Abfrage-System

In diesem Schritt wirst du den Code für das Hochschulinformationsabfrage-System in der Datei JDBCQueryByPreparedStatement.java implementieren. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Öffne die Datei JDBCQueryByPreparedStatement.java in einem Texteditor.

  2. Füge folgenden Code zur main()-Methode hinzu:

         try {
             String url = "jdbc:mysql://localhost:3306/edusys";
             String username = "root";
             String password = "";
             // Stelle eine Datenbankverbindung her
             Connection connection = DriverManager.getConnection(url, username, password);
    
             // Bereite die SQL-Anweisung mit Parameterplatzhalter vor
             String sql = "SELECT name, salary FROM instructor WHERE salary >?";
             PreparedStatement preparedStatement = connection.prepareStatement(sql);
    
             // Setze den Parameterwert
             preparedStatement.setDouble(1, 6000);
    
             // Führe die Abfrage aus
             ResultSet resultSet = preparedStatement.executeQuery();
    
             // Gehe durch das Ergebnis 集 iterativ
             while (resultSet.next()) {
                 String name = resultSet.getString("name");
                 double salary = resultSet.getDouble("salary");
                 System.out.println(name + " " + salary);
             }
    
             // Schließe die Ressourcen
             resultSet.close();
             preparedStatement.close();
             connection.close();
         } catch (SQLException e) {
             e.printStackTrace();
         }

    Dieser Code verbindet sich mit der MySQL-Datenbank, fordert den Benutzer auf, eine Tabelle auszuwählen, um abzufragen, führt die entsprechende SQL-Abfrage aus und druckt die Ergebnisse auf der Konsole aus.

  3. Speichere die Datei JDBCQueryByPreparedStatement.java.

Führe die Anwendung aus

In diesem letzten Schritt wirst du die Anwendung ausführen.

  1. Kompiliere die Java-Datei:
javac -d bin/ src/JDBCQueryByPreparedStatement.java
  1. Führe die Anwendung aus:
java -cp bin/:lib/mysql-connector-java-8.0.21.jar JDBCQueryByPreparedStatement

Du solltest die folgende Ausgabe sehen:

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

Herzlichen Glückwunsch! Du hast das Projekt erfolgreich abgeschlossen.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.