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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
yasmin
User
Beiträge: 1
Registriert: Dienstag 3. November 2009, 17:29

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
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

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``.
Antworten