# Java & Mysql Ein- und Ausgabefehler? (Anfängerfrage)



## Grunch (18. Mai 2005)

Hi!
Ich soll für die Schule ein Programm basteln, welches ein- und ausgaben in die MSQL-Datenbank erlaubt, allerdings komme ich abolut nicht weiter, da das Programm mir auch keine Fehlermeldung ausgibt....
Das Problem ist, daß ich nichts in die Datenbank schreiben kann und ich nicht weiß, wie man einzelne Datensätze mit 0 überschreibt..
Die Connection zur Datenbank läuft 100%ig, aber irgendwas ist da noch Faul an den Befehlen...


```
import java.io.*;
import java.sql.*;


public class Projekt

{
 public static void main(String args[])
 {
    //Anfang des Connectors

    String treiber1=null, url1=null ;

    // Name des Datenbanktreibers
    treiber1 = "org.gjt.mm.mysql.Driver" ;
    // Url der Databank
    // Server : 192.168.1.66
    // Port : 3306
    // Name der Datenbank : verw
    url1 = "jdbc:mysql://127.0.0.1:3306/verw" ;

  BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

     try
  {
     Class.forName(treiber1);
     Connection con=DriverManager.getConnection(url1,"root","");

     Statement stmt1=con.createStatement();

   //Werte initialisieren

   double auswahl_menue,Wohnflaeche,Flaechenpreis;
   String leiche,Zimmerart,Besonderheiten,Name,Vorname;
   int auswahl_wohn,auswahl_miet,WohnungID,Zimmeranzahl,Etage,MieterID,AnzahlP;

   //Auswahlmenue
   do
 {

   System.out.println("\n\n\n\tWas wollen Sie tun?\n\n");
   System.out.println("\t1. Wohnung ansehen...\n");
   System.out.println("\t2. Eine Wohnung anlegen...\n");
   System.out.println("\t3. Eine Wohnung loeschen...\n");
   System.out.println("\t4. Mieter ansehen...\n");
   System.out.println("\t5. Einen Mieter anlegen...\n");
   System.out.println("\t6. Einen Mieter loeschen...\n");
   System.out.println("\t7. Programm beenden...\n");
   System.out.println("\t-------------------------------------------------");
   System.out.print("\tIhre Auswahl: ");
   auswahl_menue=Double.parseDouble(input.readLine());
   //Auswertung der Eingabe
   //Wohnung anzeigen
   if (auswahl_menue == 1)
   {
    System.out.println("\n\n");
    System.out.println("\tWohnung ansehen...");
    System.out.println("\t------------------");
    System.out.print("\n\tWohnungsnummer eingeben oder 0 fuer alle Wohnungen: ");
    auswahl_wohn=Integer.parseInt(input.readLine());
    //Auswertung der Wohnungsanzeige

    //Alle Wohnungen werden angezeigt
    if (auswahl_wohn == 0)
    {
     System.out.println("\n\tUebersicht von allen Wohnungen...");
     System.out.println("\t---------------------------------\n");
     ResultSet res1=stmt1.executeQuery
                    ("SELECT * FROM wohn1");
     res1.close();

    }
    if (auswahl_wohn != 0)
    {
      System.out.println("\n\tUebersicht der Wohnung " + auswahl_wohn + "...\n");
      ResultSet res1=stmt1.executeQuery
                     ("SELECT * FROM wohn1 WHERE WohnungsID="+auswahl_wohn);
      res1.close();

    }

   }
   //Wohnung anlegen
   if (auswahl_menue == 2)
   {
    System.out.println("\n\n");
    System.out.println("\tEine Wohnung anlegen...");
    System.out.println("\t-----------------------");
     System.out.println("\tBitte geben Sie die Zimmeranzahl ein: ");
     Zimmeranzahl=Integer.parseInt(input.readLine());
     System.out.println("\tBitte geben Sie die Zimmerarten ein.\n\t\tK=Kueche, B= Bad, etc.: ");
     Zimmerart=input.readLine();
     System.out.println("\tBitte geben Sie die Wohnflaeche ein: ");
     Wohnflaeche=Double.parseDouble(input.readLine());
     System.out.println("\tBitte geben Sie den Flaechenpreis ein: ");
     Flaechenpreis=Double.parseDouble(input.readLine());
     System.out.println("\tBitte geben Sie die Etage ein: ");
     Etage=Integer.parseInt(input.readLine());
     System.out.println("\tPlatz fuer Besonderheiten: ");
     Besonderheiten=input.readLine();
    stmt1.executeUpdate
                       ("INSERT INTO wohn1(Zimmeranzahl,Zimmerart,Wohnfaeche,Flaechenpreis,Etage,Besonderheiten) values (Zimmeranzahl, Zimmerart, Wohnflaeche, Flaechenpreis, Etage, Besonderheiten)");

   }

   //Wohnung loeschen
   if (auswahl_menue == 3)
   {
    System.out.println("\n\n");
    System.out.println("\tEine Wohnung loeschen...");
    System.out.println("\t------------------------");
    System.out.println("\tBitte geben Sie die Wohnungsnummer ein: ");
    WohnungID=Integer.parseInt(input.readLine());
    stmt1.executeUpdate
                       ("");
   }
   //Mieter anzeigen
   if (auswahl_menue == 4)
   {
    System.out.println("\n\n");
    System.out.println("\tMieter ansehen...");
    System.out.println("\t-----------------");
    System.out.print("\n\tMieternummer eingeben oder 0 fuer alle Mieter: ");
    auswahl_miet=Integer.parseInt(input.readLine());
    //Auswertung der Mieteranzeige
    //Alle Mieter werden angezeigt
    if (auswahl_miet == 0)
    {
     System.out.println("\n\tUebersicht von allen Mietern...");
     System.out.println("\t-------------------------------");
    }

   }
   //Mieter anlegen
   if (auswahl_menue == 5)
   {
    System.out.println("\n\n");
    System.out.println("\tEinen Mieter anlegen...");
    System.out.println("\t-----------------------");
    System.out.println("\tBitte geben Sie die Mieternummer ein: ");
     MieterID=Integer.parseInt(input.readLine());
     System.out.println("\tBitte geben Sie den Namen ein: ");
     Name=input.readLine();
     System.out.println("\tBitte geben Sie den Vornamen ein: ");
     Vorname=input.readLine();
     System.out.println("\tBitte geben Sie die Anzahl der Personen in dem Haushalt an: ");
     AnzahlP=Integer.parseInt(input.readLine());
   }

   //Mieter loeschen
   if (auswahl_menue == 6)
   {
    System.out.println("\n\n");
    System.out.println("\tEinen Mieter loeschen...");
    System.out.println("\t------------------------");
   }
 }while(auswahl_menue != 7);
  }
     catch( Exception ex ){System.out.println("Ein Programmfehler ist aufgetreten...");}

 }
}
```


----------



## abollm (18. Mai 2005)

Gewöhne dir zunächst einmal an, im CATCH-Teil eines TRY-CATCH-Blocks grundsätzlich die Fehlermeldung inhaltlich ausgeben zu lassen. Ein bloßer Hinweis, dass ein Fehler aufgetreten ist, reicht bei der Fehlersuche in der Regel _nicht_ aus.


----------



## bambi (18. Mai 2005)

Also erst mal: Nicht immer gleich alles posten, sondern nur den relevanten Teil (Informatiker sind faul - heisst's immer so schoen :wink: )

1. Funktionieren denn die Updates, wenn Du sie direkt auf der DB ausfuehrst?

2. Was soll das sein?

```
stmt1.executeUpdate("");
```

Ich weiss nicht, ob hier was ausgegeben werden soll, oder Du jetzt einfach nur den Code fuer die Ausgabe raus-
genommen hast, aber hier wird jedenfalls nur das Select ausgefuehrt, aber mit den Date machst Du gar nix. Wenn 
Du nicht genau weisst, wie Du durchs ResultSet gehen kannst, dann schau einfach mal hier in die Suche. Da steht's
garantiert irgendwo...

```
ResultSet res1=stmt1.executeQuery("SELECT * FROM wohn1");
res1.close();
```


----------

