Advertisement
Guest User

bla.java

a guest
May 12th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.99 KB | None | 0 0
  1. package database;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.Statement;
  8.  
  9. import data.Kunde;
  10. import data.KundenListe;
  11.  
  12. public class MySQLDatabase {
  13.  
  14.     /**
  15.      * ein neuer Kunde soll mit einem INSERT Befehl eingetragen werden
  16.      * @param k - der Kunde
  17.      * @return true wenn die Aktion erfolgreich war
  18.      */
  19.     public boolean neuerKunde(Kunde k) {
  20.         try {
  21.             // Parameter für Verbindungsaufbau definieren
  22.             String driver = "com.mysql.jdbc.Driver";
  23.             String url = "jdbc:mysql://localhost/test";
  24.             String user = "root";
  25.             String password = "";
  26.             // JDBC-Treiber laden
  27.             Class.forName(driver);
  28.             // Verbindung aufbauen
  29.             Connection con;
  30.             con = DriverManager.getConnection(url, user, password);
  31.             // Zeichenkette für SQL-Befehl erstellen
  32.             String sql = "SELECT ? FROM ?";
  33.             PreparedStatement stmt = conn.prepareStatement(sql);
  34.             stmt.setString(1, "*");
  35.             stmt.setString(2, "title");
  36.             // SQL-Anweisungen ausführen
  37.             ResultSet rs = stmt.executeQuery(sql);
  38.             // Verbindung schließen
  39.             con.close();
  40.         } catch (Exception ex) { // Fehler abfangen
  41.             ex.printStackTrace();// Fehlermeldung ausgeben
  42.             return false;
  43.         }
  44.         return true;
  45.     }
  46.  
  47.     /**
  48.      * es soll die höchste Kundennummer der Datenbank aus der Kundentabelle
  49.      * zurückgegeben werden
  50.      * @return die höchste Kundennummer
  51.      */
  52.     public int maxKundennummer() {
  53.         int maxKundennummer = 0;
  54.         try {
  55.             // Parameter für Verbindungsaufbau definieren
  56.  
  57.             // JDBC-Treiber laden
  58.  
  59.             // Verbindung aufbauen
  60.  
  61.             // Zeichenkette für SQL-Befehl erstellen
  62.             String sql = "...";
  63.  
  64.             // Statement erstellen
  65.  
  66.             // SQL-Anweisungen ausführen
  67.             ResultSet rs = stmt.executeQuery(sql);
  68.             // Verbindung schließen
  69.  
  70.             // ResultSet auswerten
  71.             if (rs.next())
  72.                 maxKundennummer = rs.getInt(1);
  73.  
  74.             // Verbindung schließen
  75.  
  76.         } catch (Exception ex) {
  77.             ex.printStackTrace();
  78.         }
  79.         return maxKundennummer;
  80.     }
  81.  
  82.     /**
  83.      * Es soll die komplette Kundenliste zurückgegeben werden, nach Nachnamen, Vornamen sortiert
  84.      * @return sortierte Kundenliste
  85.      */
  86.     public KundenListe getKundenliste() {
  87.         KundenListe kundenliste = new KundenListe();
  88.         try {
  89.             // Parameter für Verbindungsaufbau definieren
  90.  
  91.             // JDBC-Treiber laden
  92.  
  93.             // Verbindung aufbauen
  94.  
  95.             // Zeichenkette für SQL-Befehl erstellen
  96.             String sql = "...";
  97.  
  98.             // Statement erstellen
  99.  
  100.             // SQL-Anweisungen ausführen
  101.             ResultSet rs = stmt.executeQuery(sql);
  102.            
  103.             // Verbindung schließen
  104.  
  105.             // ResultSet auswerten
  106.             while (rs.next()) {
  107.                 Kunde k = new Kunde(rs.getInt("p_kundennummer"), rs.getString("vorname"), rs.getString("nachname"),
  108.                         rs.getString("strasse"), rs.getString("plz"), rs.getString("ort"),
  109.                         rs.getString("telefonnummer"));
  110.                 kundenliste.addKunde(k);
  111.             }
  112.             // Verbindung schließen
  113.            
  114.         } catch (Exception ex) {
  115.             ex.printStackTrace();
  116.         }
  117.         return kundenliste;
  118.     }
  119.  
  120.     // ------------------------ FINGER WEG VON DIESEM TEIL DES QUELLCODES ----------------------------------------------------------
  121.  
  122.     /**
  123.      * Erstellt ggf. eine Datenbank mit Beispieldaten
  124.      * Voraussetzung: MySQL-Datenbank gestartet
  125.      * FINGER WEG VON DIESEM TEIL DES QUELLCODES
  126.      */
  127.     public void setup() {
  128.         try {
  129.             // Parameter für Verbindungsaufbau definieren
  130.             String driver = "com.mysql.jdbc.Driver";
  131.             String url = "jdbc:mysql://localhost/?";
  132.             String user = "root";
  133.             String password = "";
  134.             // JDBC-Treiber laden
  135.             Class.forName(driver);
  136.             // Verbindung aufbauen
  137.             Connection con;
  138.             con = DriverManager.getConnection(url, user, password);
  139.             // SQL-Anweisungen ausführen
  140.             Statement stmt = con.createStatement();
  141.             stmt.executeUpdate("CREATE DATABASE IF NOT EXISTS velocebello;");
  142.             // Verbindung schließen
  143.             con.close();
  144.             url = "jdbc:mysql://localhost/velocebello?";
  145.             // Verbindung aufbauen
  146.             con = DriverManager.getConnection(url, user, password);
  147.             stmt = con.createStatement();
  148.             // Kundentabelle einfügen
  149.             stmt.executeUpdate("CREATE TABLE IF NOT EXISTS TKunden(" + "p_kundennummer INT PRIMARY KEY,"
  150.                     + "vorname VARCHAR(50) NOT NULL," + "nachname VARCHAR(50) NOT NULL," + "strasse VARCHAR(50),"
  151.                     + "plz CHAR(5)," + "ort VARCHAR(30)," + "telefonnummer VARCHAR(25));");
  152.             // prüfen, ob DB bereits existiert und gefüllt ist
  153.             ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM TKunden;");
  154.             boolean insert = true;
  155.             if (rs.next())
  156.                 insert = rs.getInt(1) == 0;
  157.             // ggf. Startdatensätze einfügen
  158.             if (insert) {
  159.                 stmt.executeUpdate(
  160.                         "INSERT INTO TKunden VALUES (1,'Jan', 'Ullrich', 'Apothekengasse 14', '63254', 'Regensburg', '0232 258699884'),"
  161.                                 + "(2,'Lance', 'Armstrong', 'Dopingallee 26', '43215', 'Düsseldorf', '0489 2547896'),"
  162.                                 + "(3,'Ries', 'Bjarne', 'Epostraße 5', '16589', 'Prenzlau', '0772 12546663')");
  163.             }
  164.             con.close();
  165.  
  166.         } catch (Exception ex) { // Fehler abfangen
  167.             ex.printStackTrace();// Fehlermeldung ausgeben
  168.         }
  169.     }
  170.  
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement