Advertisement
Guest User

Untitled

a guest
Jan 19th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.18 KB | None | 0 0
  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.util.Calendar;
  7.  
  8. import javax.swing.JOptionPane;
  9.  
  10. public class Praktikum9 {
  11.  
  12. public static void main(String[] args) throws ClassNotFoundException, SQLException {
  13. Class.forName("com.mysql.jdbc.Driver");
  14. Connection con = DriverManager.getConnection("jdbc:mysql://localhost/praktikum5", "Doktor", "Tierarzt2014");
  15. // listKunden(con); // Aufgabe 1 und 2
  16. listAnimals(con); // Aufgabe 3 und 4
  17. // insertBehandlung(con); // Aufgabe 5
  18. // rechnungenMonat(con); // Aufgabe 6
  19. con.close();
  20. }
  21.  
  22. // Aufgabe 1 und 2
  23. public static void listKunden(Connection con) throws SQLException {
  24. try {
  25. con.setAutoCommit(false);
  26. con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
  27. PreparedStatement pstmt = con.prepareStatement("SELECT * FROM Kunde WHERE Nachname LIKE ?");
  28. String input = input("Nachname?");
  29. pstmt.setString(1, "%" + input + "%");
  30. ResultSet rs = pstmt.executeQuery();
  31.  
  32. if (rs.isBeforeFirst()) {
  33. printQuery(rs, "KdNr", "Nachname", "Vorname");
  34. } else {
  35. String kundeNN = input("Geben Sie den Nachnamen des neuen Kunden ein");
  36. String kundeVN = input("Geben Sie den Vornamen ein");
  37. insertPerson(con, kundeNN, kundeVN);
  38. System.out.println("Der Kunde wurde erfolgreich hinzugefügt!");
  39. }
  40. con.commit();
  41. } catch (SQLException e) {
  42. System.out.println(e.toString());
  43. }
  44. }
  45.  
  46. // Aufgabe 3 und 4
  47. public static void listAnimals(Connection con) throws SQLException {
  48. try {
  49. con.setAutoCommit(false);
  50. con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
  51. PreparedStatement pstmt = con.prepareStatement(
  52. "SELECT TNr, Name, Spezies FROM Kunde INNER JOIN Tier USING(KdNr) WHERE KdNr = ?");
  53. String input = input("Kundennummer?");
  54. pstmt.setString(1, input);
  55. ResultSet rs = pstmt.executeQuery();
  56.  
  57. if (rs.isBeforeFirst()) {
  58. printQuery(rs, "TNr", "Name", "Spezies");
  59. } else {
  60. String tierName = input("Geben Sie den Namen des neuen Tieres ein");
  61. String tierSpez = input("Geben Sie die Spezies des Tieres ein");
  62. insertAnimal(con, tierName, tierSpez, input);
  63. System.out.println("Das Tier wurde erfolgreich hinzugefügt!");
  64. }
  65. con.commit();
  66. } catch (SQLException e) {
  67. System.out.println(e.toString());
  68. }
  69. }
  70.  
  71. // Wird in listKunden() und listAnimals() benutzt
  72. public static void printQuery(ResultSet rs, String col1, String col2, String col3) throws SQLException {
  73. while (rs.next()) {
  74. int id = rs.getInt(col1);
  75. String column2 = rs.getString(col2);
  76. String column3 = rs.getString(col3);
  77. System.out.println(id + " " + column2 + " " + column3);
  78. }
  79. }
  80.  
  81. // rawr
  82. public static String input(String msg) {
  83. return JOptionPane.showInputDialog(msg);
  84. }
  85.  
  86. // Methode für Aufgabe 2
  87. public static void insertPerson(Connection con, String name, String vorname) throws SQLException {
  88. PreparedStatement pstmt = con.prepareStatement("INSERT INTO Kunde (Name, Vorname) VALUES (?, ?)");
  89. pstmt.setString(1, name);
  90. pstmt.setString(2, vorname);
  91. pstmt.executeUpdate();
  92. }
  93.  
  94. // Methode für Aufgabe 4
  95. public static void insertAnimal(Connection con, String name, String spezies, String kundenID) throws SQLException {
  96. PreparedStatement pstmt = con.prepareStatement("INSERT INTO Tier (Name, Spezies, KdNr) VALUES (?, ?, ?)");
  97. pstmt.setString(1, name);
  98. pstmt.setString(2, spezies);
  99. pstmt.setString(3, kundenID);
  100. pstmt.executeUpdate();
  101. }
  102.  
  103. // Aufgabe 5
  104. public static void insertBehandlung(Connection con) throws SQLException {
  105. String tNr = input("Geben Sie die TNr des Tieres in Behandlung ein");
  106. String code = input("Geben Sie den Code der Behandlung ein");
  107. PreparedStatement codeExists = con.prepareStatement("SELECT Code FROM Behandlung WHERE Code = ?");
  108. codeExists.setString(1, code);
  109. ResultSet rs = codeExists.executeQuery();
  110. if (rs.next()) {
  111. PreparedStatement pstmt = con.prepareStatement("INSERT INTO wird_behandelt (TNr, Code) VALUES (?, ?)");
  112. pstmt.setString(1, tNr);
  113. pstmt.setString(2, code);
  114. pstmt.executeUpdate();
  115. System.out.println("Die Behandlung wurde erfolgreich hinzugefügt!");
  116. } else {
  117. System.out.println("Fehlermeldung: Sie haben einen falschen Behandlungs-Code eingegeben!");
  118. }
  119. }
  120.  
  121. // Aufgabe 6
  122. public static void rechnungenMonat(Connection con) throws SQLException {
  123. try {
  124. con.setAutoCommit(false);
  125. con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
  126. PreparedStatement psAnimals = con.prepareStatement("SELECT Nachname, Vorname, Name, Text, Preis FROM Kunde "
  127. + "INNER JOIN Tier USING(KdNr) INNER JOIN wird_behandelt USING(TNr) INNER JOIN Behandlung USING(Code) "
  128. + "WHERE MONTH(Datum) = ? AND YEAR(Datum) = ?");
  129. String monat = input("Geben Sie den Monat der Behandlungen ein (1-12)");
  130. psAnimals.setString(1, monat);
  131. Calendar cal = Calendar.getInstance();
  132. int year = cal.get(Calendar.YEAR);
  133. psAnimals.setInt(2, year);
  134. ResultSet rs = psAnimals.executeQuery();
  135. while (rs.next()) {
  136. String nachname = rs.getString("Nachname");
  137. String vorname = rs.getString("Vorname");
  138. String tiername = rs.getString("Name");
  139. String code = rs.getString("Code");
  140. float preis = rs.getFloat("Preis");
  141. System.out.println(nachname + " " + vorname + " " + tiername + " " + code + " " + preis);
  142. }
  143. PreparedStatement psPreis = con
  144. .prepareStatement("SELECT Nachname, Vorname, SUM(Preis) AS Gesamtpreis FROM Kunde "
  145. + "INNER JOIN Tier USING(KdNr) INNER JOIN wird_behandelt USING(TNr) INNER JOIN Behandlung USING(Code) "
  146. + "WHERE MONTH(Datum) = ? AND YEAR(Datum) = ? GROUP BY Nachname");
  147. psPreis.setString(1, monat);
  148. psPreis.setInt(2, year);
  149. rs = psPreis.executeQuery();
  150. System.out.println();
  151. while (rs.next()) {
  152. String nnPreis = rs.getString("Nachname");
  153. String vnPreis = rs.getString("Vorname");
  154. float gPreis = rs.getFloat("Gesamtpreis");
  155. System.out.println(nnPreis + " " + vnPreis + " " + gPreis);
  156. }
  157. con.commit();
  158. } catch (SQLException e) {
  159. System.out.println(e.toString());
  160. }
  161. }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement