Java 将数据插入H2数据库表

Java 将数据插入H2数据库表,java,jdbc,h2,Java,Jdbc,H2,我是SQL的新手。我试着教自己如何使用H2。我已经成功地创建了一个表,但是当我尝试使用另一个类插入数据时,数据就不会被插入 这是我的密码: 创建“MyLovelStudents”表的类: 插入到“MyLovelStudents”表中的类: 错误消息: run: Connecting to a selected database... Connected database successfully... Inserting records into the table... org.h2.jdbc

我是SQL的新手。我试着教自己如何使用H2。我已经成功地创建了一个表,但是当我尝试使用另一个类插入数据时,数据就不会被插入

这是我的密码:

创建“MyLovelStudents”表的类:

插入到“MyLovelStudents”表中的类:

错误消息:

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)
您忘记引用“数据库”:


最后一列是
VARCHAR
列,但您似乎正在向
insert
语句传递一个不带引号的值

而不是

String sql = "INSERT INTO MYLOVELYSTUDENTS " + 
             "VALUES (123456789, 'Zara', 'Ali', 18, database)";
试用

String sql = "INSERT INTO MYLOVELYSTUDENTS " + 
             "VALUES (123456789, 'Zara', 'Ali', 18, 'database')";

问题在这一行,错误显示:

String sql = "INSERT INTO MYLOVELYSTUDENTS " + "VALUES (123456789, 'Zara', 'Ali', 18, database)";

可能您的意思是
'database'
而不是
database

最后一个课程列具有varchar2数据类型,因此您必须将值保留在单引号(“”)中


调试查询的一个好方法是首先手动测试它们。H2有一个H2控制台(
http://localhost:8082
,默认情况下)。在那里,您可以输入查询,并获得错误反馈


我只看到一个:我想你需要在“数据库”这个词周围加上引号。

我已经使用H2多年了,但从来都不知道它的web控制台。谢谢你提到这件事。
String sql = "INSERT INTO MYLOVELYSTUDENTS " + 
             "VALUES (123456789, 'Zara', 'Ali', 18, database)";
String sql = "INSERT INTO MYLOVELYSTUDENTS " + 
             "VALUES (123456789, 'Zara', 'Ali', 18, 'database')";
String sql = "INSERT INTO MYLOVELYSTUDENTS " + "VALUES (123456789, 'Zara', 'Ali', 18, database)";
       String sql = "INSERT INTO MYLOVELYSTUDENTS " 
         + "VALUES (123456789, 'Zara', 'Ali', 18, 'database')";
                            quotes needed here ---^--------^