Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // JDBC: Online-Supermarkt
- // Downloaden: in eine Datei mit Namen Supermarkt.java!
- // Anpassen: Name der Datenbank und Benutzer!
- // vor der Benutzung: Datenbank anlegen
- // Uebersetzen: javac Supermarkt.java
- // Usage: java Supermarkt
- // danach: alleWaren oder Bestellungen oder Bestellen oder # (fuer Beenden)
- // momentan notwendiger Treiber: postgresql-8.3-603-jdbc4.jar
- import java.io.*;
- import java.sql.*;
- public class Supermarkt {
- static private Connection con;
- static private BufferedReader userin;
- private static Statement stmt;
- public Supermarkt() throws SQLException {
- userin = new BufferedReader(new InputStreamReader(System.in));
- stmt = con.createStatement();
- }
- public void alleWaren() throws Exception {
- String sql = "SELECT bezeichnung, preis, vorrat, kname FROM ware INNER JOIN kategorie k on ware.katid = k.katid";
- ResultSet rs = stmt.executeQuery(sql);
- while (rs.next()) {
- String bezeichnung = rs.getString("bezeichnung");
- int preis = rs.getInt("preis");
- int vorrat = rs.getInt("vorrat");
- String kname = rs.getString("kname");
- System.out.println("Bezeichnung: " + bezeichnung + "Preis: " + preis + "\tVorrat: " + vorrat + "\tKname: " + kname);
- }
- }
- public void alleBestellungen() throws Exception {
- System.out.print("Kundenname eingeben: ");
- String name = userin.readLine();
- PreparedStatement stmt = con.prepareStatement("SELECT bestid, datum, status, kname FROM bestellung INNER JOIN kunde ON kunde.kundeid = bestellung.kundid WHERE kname = ?");
- stmt.setString(1,name);
- ResultSet rs = stmt.executeQuery();
- alleBestellungenOutput(rs);
- //input loop
- System.out.println("\nFür weitere Ware '+' eingeben, zum beenden beliebige Taste");
- while (userin.readLine().equals("+")) {
- System.out.print("Kundenname eingeben: ");
- name = userin.readLine();
- stmt.setString(1,name);
- rs = stmt.executeQuery();
- alleBestellungenOutput(rs);
- System.out.println("\nFür weitere Ware '+' eingeben, zum beenden beliebige Taste");
- }
- }
- //Gehört zu alleBestellungen
- public void alleBestellungenOutput(ResultSet rs) throws Exception {
- if(!rs.next()) {
- System.out.println("Keine Bestellungen vorhanden!");
- return;
- }
- while(rs.next()){
- int bestid = rs.getInt("bestid");
- Date datum = rs.getDate("datum");
- int status = rs.getInt("status");
- String kname = rs.getString("kname");
- System.out.println("BestellID: " + bestid + "Datum: " + datum + "Status" + status + "Kundenname: " + kname);
- }
- }
- public void bestellenSQL(String kundenname, String warenname, int anzahl) throws Exception {
- //Anzahl Prüfen
- if(anzahl <= 0) {
- System.out.println("Anzahl ungültig!");
- return;
- }
- //kundenID
- String sql = "SELECT kundeid FROM kunde WHERE kname = '" + kundenname + "'";
- ResultSet rs = stmt.executeQuery(sql);
- if(!rs.next()) {
- System.out.println("Kunde nicht registriert!");
- return;
- }
- int kundenID = rs.getInt("kundeid");
- //warenID
- sql = "SELECT warenid FROM ware WHERE bezeichnung = '" + warenname + "'";
- rs = stmt.executeQuery(sql);
- if(!rs.next()) {
- System.out.println("Ware nicht verfügbar!");
- return;
- }
- int warenID = rs.getInt("warenid");
- //Datum
- sql = "SELECT CURRENT_DATE";
- rs = stmt.executeQuery(sql);
- if(!rs.next()) {return;}
- Date date = rs.getDate(1);
- sql = "INSERT INTO bestellung VALUES (nextval('bestellid'), '" + date + "', 0,'" + kundenID + "');";
- sql += "INSERT INTO enthaelt VALUES (currval('bestellid'), " + warenID + ", " + anzahl + ")";
- stmt.executeUpdate(sql);
- }
- public void bestellen() throws Exception {
- System.out.print("Kundenname eingeben: ");
- String kundenname = userin.readLine();
- System.out.print("Warenname eingeben: ");
- String warenname = userin.readLine();
- System.out.print("Anzahl eingeben: ");
- int anzahl = Integer.parseInt(userin.readLine());
- bestellenSQL( kundenname, warenname, anzahl);
- //eingabeloop
- System.out.println("\nFür weiter Ware '+' eingeben, zum beenden beliebige Taste");
- while (userin.readLine().equals("+")) {
- System.out.print("Warenname eingeben: ");
- warenname = userin.readLine();
- System.out.print("Anzahl eingeben: ");
- anzahl = Integer.parseInt(userin.readLine());
- bestellenSQL( kundenname, warenname, anzahl);
- System.out.println("\nFür weiter Ware '+' eingeben, zum beenden beliebige Taste");
- }
- }
- public static void main(String args[]) {
- if (args.length != 0) {
- System.out.println("Usage: java supermarkt");
- System.exit(1);
- }
- String driverClass = "org.postgresql.Driver";
- try {
- Class.forName(driverClass);
- } catch (ClassNotFoundException exc) {
- System.out.println("ClassNotFoundException: " + exc.getMessage());
- }
- try {
- // 193.175.36.101 ist die vm3-1-Maschine
- Class.forName("org.postgresql.Driver");
- con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/praktikum3", "postgres", "");
- Supermarkt sup = new Supermarkt();
- String aufgabe;
- //switch auswahl
- userin = new BufferedReader(new InputStreamReader(System.in));
- System.out.println("\nGeben Sie ein: Waren oder Bestellungen oder Bestellen oder #!");
- while (!(aufgabe = userin.readLine()).startsWith("#")) {
- if (aufgabe.equals("Waren")) sup.alleWaren();
- else if (aufgabe.equals("Bestellungen")) sup.alleBestellungen();
- else if (aufgabe.equals("Bestellen")) sup.bestellen();
- System.out.println("\nGeben Sie ein: Waren oder Bestellungen oder Bestellen oder #!");
- }
- con.close();
- userin.close();
- } catch (Exception exc) {
- System.err.println("Exception in Main. " + exc.getMessage());
- exc.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement