Je suis un débutant dans SQL. J'essaie de m'apprendre à travailler avec H2. J'ai réussi à créer une table, mais lorsque j'essaie d'insérer des données à l'aide d'une autre classe, les données ne sont pas insérées.
Voici mon code: P>
La classe qui crée les "mylovelystudents" Tableau: p> la classe qui insère dans la table "mylovelystudents": p> Le message d'erreur: p > run:
Connecting to a selected database...
Connected database successfully...
Inserting records into the table...
org.h2.jdbc.JdbcSQLException: Column "DATABASE" not found; SQL statement:
INSERT INTO MYLOVELYSTUDENTS VALUES (123456789, 'Zara', 'Ali', 18, database) [42122-173]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:331)
at org.h2.message.DbException.get(DbException.java:171)
at org.h2.message.DbException.get(DbException.java:148)
at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:144)
at org.h2.command.dml.Insert.prepare(Insert.java:238)
at org.h2.command.Parser.prepareCommand(Parser.java:219)
at org.h2.engine.Session.prepareLocal(Session.java:428)
at org.h2.engine.Session.prepareCommand(Session.java:377)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1138)
at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:124)
at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:113)
at Database.H2Samples.JDBCExampleInsertRecordsExample.main(JDBCExampleInsertRecordsExample.java:34)
Goodbye!
BUILD SUCCESSFUL (total time: 4 seconds)
5 Réponses :
Vous avez oublié de citation "Database":
String sql = "INSERT INTO MYLOVELYSTUDENTS " + "VALUES (123456789, 'Zara', 'Ali', 18, 'database')"; quotes needed here ---^--------^
La dernière colonne est une colonne au lieu de ... p> essayez d'utiliser p> varchar code>, mais vous semblez transmettre une valeur non coturée à l'instruction code> insérer code>
Le problème est dans cette ligne car l'erreur indique: peut-être que vous vouliez dire "base de données" code> au lieu de la base de données code>? < / p> p>
La dernière colonne du cours contient le type de données VARCHAR2, vous devez donc conserver les valeurs dans les guillemets simples ('')
String sql = "INSERT INTO MYLOVELYSTUDENTS " + "VALUES (123456789, 'Zara', 'Ali', 18, 'database')"; quotes needed here ---^--------^
Un bon moyen de déboguer les requêtes est de les tester manuellement. H2 a une console H2 ( J'ai vu un seul: je pense que vous avez besoin de citations autour du mot "Base de données". P> http: // localhost: 8082 code>, par défaut). Là, vous pouvez entrer des requêtes et obtenir des commentaires sur les erreurs. P>
J'utilise H2 depuis des années, mais je n'ai jamais connu de sa console Web. Merci d'avoir mentionné cela.