Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.Calendar;
- import javax.swing.JOptionPane;
- public class Praktikum9 {
- public static void main(String[] args) throws ClassNotFoundException, SQLException {
- Class.forName("com.mysql.jdbc.Driver");
- Connection con = DriverManager.getConnection("jdbc:mysql://localhost/praktikum5", "Doktor", "Tierarzt2014");
- // listKunden(con); // Aufgabe 1 und 2
- listAnimals(con); // Aufgabe 3 und 4
- // insertBehandlung(con); // Aufgabe 5
- // rechnungenMonat(con); // Aufgabe 6
- con.close();
- }
- // Aufgabe 1 und 2
- public static void listKunden(Connection con) throws SQLException {
- try {
- con.setAutoCommit(false);
- con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
- PreparedStatement pstmt = con.prepareStatement("SELECT * FROM Kunde WHERE Nachname LIKE ?");
- String input = input("Nachname?");
- pstmt.setString(1, "%" + input + "%");
- ResultSet rs = pstmt.executeQuery();
- if (rs.isBeforeFirst()) {
- printQuery(rs, "KdNr", "Nachname", "Vorname");
- } else {
- String kundeNN = input("Geben Sie den Nachnamen des neuen Kunden ein");
- String kundeVN = input("Geben Sie den Vornamen ein");
- insertPerson(con, kundeNN, kundeVN);
- System.out.println("Der Kunde wurde erfolgreich hinzugefügt!");
- }
- con.commit();
- } catch (SQLException e) {
- System.out.println(e.toString());
- }
- }
- // Aufgabe 3 und 4
- public static void listAnimals(Connection con) throws SQLException {
- try {
- con.setAutoCommit(false);
- con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
- PreparedStatement pstmt = con.prepareStatement(
- "SELECT TNr, Name, Spezies FROM Kunde INNER JOIN Tier USING(KdNr) WHERE KdNr = ?");
- String input = input("Kundennummer?");
- pstmt.setString(1, input);
- ResultSet rs = pstmt.executeQuery();
- if (rs.isBeforeFirst()) {
- printQuery(rs, "TNr", "Name", "Spezies");
- } else {
- String tierName = input("Geben Sie den Namen des neuen Tieres ein");
- String tierSpez = input("Geben Sie die Spezies des Tieres ein");
- insertAnimal(con, tierName, tierSpez, input);
- System.out.println("Das Tier wurde erfolgreich hinzugefügt!");
- }
- con.commit();
- } catch (SQLException e) {
- System.out.println(e.toString());
- }
- }
- // Wird in listKunden() und listAnimals() benutzt
- public static void printQuery(ResultSet rs, String col1, String col2, String col3) throws SQLException {
- while (rs.next()) {
- int id = rs.getInt(col1);
- String column2 = rs.getString(col2);
- String column3 = rs.getString(col3);
- System.out.println(id + " " + column2 + " " + column3);
- }
- }
- // rawr
- public static String input(String msg) {
- return JOptionPane.showInputDialog(msg);
- }
- // Methode für Aufgabe 2
- public static void insertPerson(Connection con, String name, String vorname) throws SQLException {
- PreparedStatement pstmt = con.prepareStatement("INSERT INTO Kunde (Name, Vorname) VALUES (?, ?)");
- pstmt.setString(1, name);
- pstmt.setString(2, vorname);
- pstmt.executeUpdate();
- }
- // Methode für Aufgabe 4
- public static void insertAnimal(Connection con, String name, String spezies, String kundenID) throws SQLException {
- PreparedStatement pstmt = con.prepareStatement("INSERT INTO Tier (Name, Spezies, KdNr) VALUES (?, ?, ?)");
- pstmt.setString(1, name);
- pstmt.setString(2, spezies);
- pstmt.setString(3, kundenID);
- pstmt.executeUpdate();
- }
- // Aufgabe 5
- public static void insertBehandlung(Connection con) throws SQLException {
- String tNr = input("Geben Sie die TNr des Tieres in Behandlung ein");
- String code = input("Geben Sie den Code der Behandlung ein");
- PreparedStatement codeExists = con.prepareStatement("SELECT Code FROM Behandlung WHERE Code = ?");
- codeExists.setString(1, code);
- ResultSet rs = codeExists.executeQuery();
- if (rs.next()) {
- PreparedStatement pstmt = con.prepareStatement("INSERT INTO wird_behandelt (TNr, Code) VALUES (?, ?)");
- pstmt.setString(1, tNr);
- pstmt.setString(2, code);
- pstmt.executeUpdate();
- System.out.println("Die Behandlung wurde erfolgreich hinzugefügt!");
- } else {
- System.out.println("Fehlermeldung: Sie haben einen falschen Behandlungs-Code eingegeben!");
- }
- }
- // Aufgabe 6
- public static void rechnungenMonat(Connection con) throws SQLException {
- try {
- con.setAutoCommit(false);
- con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
- PreparedStatement psAnimals = con.prepareStatement("SELECT Nachname, Vorname, Name, Text, Preis FROM Kunde "
- + "INNER JOIN Tier USING(KdNr) INNER JOIN wird_behandelt USING(TNr) INNER JOIN Behandlung USING(Code) "
- + "WHERE MONTH(Datum) = ? AND YEAR(Datum) = ?");
- String monat = input("Geben Sie den Monat der Behandlungen ein (1-12)");
- psAnimals.setString(1, monat);
- Calendar cal = Calendar.getInstance();
- int year = cal.get(Calendar.YEAR);
- psAnimals.setInt(2, year);
- ResultSet rs = psAnimals.executeQuery();
- while (rs.next()) {
- String nachname = rs.getString("Nachname");
- String vorname = rs.getString("Vorname");
- String tiername = rs.getString("Name");
- String code = rs.getString("Code");
- float preis = rs.getFloat("Preis");
- System.out.println(nachname + " " + vorname + " " + tiername + " " + code + " " + preis);
- }
- PreparedStatement psPreis = con
- .prepareStatement("SELECT Nachname, Vorname, SUM(Preis) AS Gesamtpreis FROM Kunde "
- + "INNER JOIN Tier USING(KdNr) INNER JOIN wird_behandelt USING(TNr) INNER JOIN Behandlung USING(Code) "
- + "WHERE MONTH(Datum) = ? AND YEAR(Datum) = ? GROUP BY Nachname");
- psPreis.setString(1, monat);
- psPreis.setInt(2, year);
- rs = psPreis.executeQuery();
- System.out.println();
- while (rs.next()) {
- String nnPreis = rs.getString("Nachname");
- String vnPreis = rs.getString("Vorname");
- float gPreis = rs.getFloat("Gesamtpreis");
- System.out.println(nnPreis + " " + vnPreis + " " + gPreis);
- }
- con.commit();
- } catch (SQLException e) {
- System.out.println(e.toString());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement