Seite 1 von 1

execute("insert into tabelle values(integer, string)&am

Verfasst: Dienstag 3. November 2009, 17:33
von yasmin
Hallo kann mir bitte jemand sagen, was ich da falsch mache?
Er fügt meine Id ein, ist auch richtig, beim zweiten parameter macht er ne Fehler.
Er schreibt statt das was ich eingebe immer konstant a1+.
Woran liegt es?

Code: Alles auswählen

int ergebnis;
        byte buffer[]=new byte[20];
        int zeichen;
        int id;
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
       try{
           System.out.println("Id eingeben:");
           id=Integer.parseInt(br.readLine());
      System.out.println("Department eingeben:");
        zeichen=System.in.read(buffer,0,20);
        a1=new String(buffer,0,zeichen);
        stmt=connect.createStatement();

stmt.execute("insert into Test values ("+id+", 'a1+' )");
} catch
usw
Danke im voraus

Verfasst: Dienstag 3. November 2009, 17:41
von ms4py
Du weißt schon, dass du hier im *Python*-Forum bist?

Edit: Ich versteht zwar nicht so viel von Java, aber wenn in deiner SQL-Abfrage der String 'a1+' steht, wird auch immer 'a1+' eingetragen.
Du solltest dich mal mit den Grundlagen der Datenbankprogrammierung (in Java) auseinander setzen. Und wenn du dann noch Fragen hast, wende dich bitte an das passende Forum.

Edit2: Außerdem gilt bei Java genauso wie bei Python, dass man SQL-Abfragen nicht mit Stringformatierung bzw. -konkenation zusammenbauen soll. In Java gibt's dafür AFAIK die Klasse ``PreparedStatement``.