2016-04-01 11 views
0

Ich habe versucht, Daten in javadb mit JDBC zu speichern. Es gab einen Fehler.Die Anzahl der zugewiesenen Werte stimmt nicht mit der Anzahl der angegebenen oder implizierten Spalten überein.

Fehler aufgetreten: Die Anzahl der zugewiesenen Werte stimmt nicht mit der Anzahl der angegebenen oder implizierten Spalten überein.

Dies ist mein JDBC-Code:

try { 
    //loading driver 

    Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); 

    //creating connection with the database 
    Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/sample", "app", "app"); 

    PreparedStatement ps = con.prepareStatement("insert into Student values(?,?,?,?,?)"); 

    ps.setString(1, Title); 
    ps.setString(2, Artist); 
    ps.setString(3, Country); 
    ps.setString(4, Price); 
    ps.setString(5, Year); 
    int i = ps.executeUpdate(); 
    if (i > 0) { 
     out.println("You are sucessfully register"); 
    } 
} catch (Exception se) { 
    out.println("Error Occured : \n" + se.getLocalizedMessage()); 
    se.printStackTrace(); 
} 
+0

Welchen Teil genau der Fehlermeldung haben Sie nicht verstanden? – BalusC

Antwort

2

Sie nicht die Spalten angegeben haben Sie-Einsatz versuchen. SQL nimmt dann an, dass Sie möglicherweise jede für die Tabelle Student definierte Spalte hinzufügen möchten. Ich nehme an, dass es in der Student-Tabelle mehr Spalten gibt als in Ihrer insert-Anweisung. Hier tritt der Fehler auf.

Definieren Sie die Spalten, in die Sie die Werte explizit einfügen.

insert into Student (Col1,Col2,Col3,Col4,Col5) values (?,?,?,?,?) 

Wenn alle anderen Spalten optional oder automatisch generiert werden, funktioniert das auch. Andernfalls erhalten Sie einen weiteren Fehler, der Ihnen sagt, welche Spalte fehlt.

Verwandte Themen