# Manipulationsfehler bei Java zu Mysql Datenbank



## dastool (24. August 2007)

Moin, 
ich hab ein problem mit der Übertragung von Daten in eine MySQL DB
Die Verbindung scheint zu klappen. Nur macht mir nun das executeQuery() schwierigkeiten und ich find den Fehler nicht.
Ich poste mal den Code soweit ich kann:

```
try {
            // Parameter für Verbindungsaufbau definieren
            String driver = "com.mysql.jdbc.Driver";
            Class.forName(driver);
            String url = "jdbc:mysql://localhost/ticketsystem";
            // JDBC-Treiber laden
            Class.forName(driver);
            // Verbindung aufbauen
            Connection con;
            con = DriverManager.getConnection(url, user, pw);
            // SQL-Anweisungen ausführen
            Statement stmt = con.createStatement();
(Zeile 34)            ResultSet rs = stmt.executeQuery("insert into `ticket`(Person,Hardware,Software,Anliegen,dringlichkeit,email,telefon,abteilung) values ("+name+","+hardware+","+software+","+area+","+dringlichkeit+","+email+","+telefon+","+abteilung+")" );
            // Ergebnis abfragen
            while(rs.next()) {
                //System.out.println(rs.getString(""));
                if ( user == "user"){
                    rs = stmt.executeQuery("select Anliegen from Ticket Where Anliegen = '"+area+"'");
                }
                String ticketnr = rs.toString();
                Frame frame = new Frame();
                frame.setTitle("Ticketnummer");
                frame.setSize(300, 200);
                frame.setLocation(350, 300);
                frame.setBackground(Color.blue);
                frame.setVisible(true);
                Label nummer = new Label();
                nummer.setText(ticketnr);
                
                
            }
            // Verbindung schließen
            con.close();
        } catch(Exception ex) {
            ex.printStackTrace();
        }
```

Kleine Erklärung noch:
Das ganze soll eine art Ticketsystem werden für Firmeninterne nutzung.
Ich möchte das ein Standarduser sein Problem in die DB eintragen kann und am Ende seine Ticketnummer erhält.(darum auch das kleine AWT-Teil).
Leider spuckt netbeans beim testen folgenden fehler aus:

java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
        at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:402)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1132)
        at ticketsystem.MySQL.Ticket(MySQL.java:34)
MySQL.java:34 ist oben im Code-Abschnitt mit Zeile 34 verwiessen.

Ich denk mal ich hab nur einen Tippfehler drin, und seh den nicht.

Google und  hat mir leider nicht weitergeholfen :-/
Mal sehen ob einer von euch weiterhelfen kann ;-)

Bis denne 
dastool


----------



## Anime-Otaku (24. August 2007)

Da du eine Datenmanipulation ausführst...oder kurzgesagt etwas in der DB veränderst darfst du natürlich kein executeQuery ausführen....schließlich bekommst du ja kein Resultset zurück. Daher ein execute oder executeUpdate sollte reichen. 

http://java.sun.com/javase/6/docs/api/java/sql/Statement.html#executeQuery(java.lang.String)

 besser^^


----------



## dto (24. August 2007)

Naja ein Tippfehler ist es nicht ganz ein insert,update,delete verlangt nach einem 
executeUpdate();

nur ein select wird über ein 
executeQuery();
ausgeführt


----------



## dastool (24. August 2007)

Danke, hätte wohl doch besser Lesen sollen ^^
Jetzt muss ich nurnoch den SQL Syntaxfehler ausbügeln.


----------

