0

所以我有一个使用 h2 在 SQL 中制作的非常简单的表

CREATE TABLE USERS(
    username varchar(255) NOT NULL,
    password varchar(255),

); 

我正在尝试使用 javalite 为其添加一个条目,因此我按照网站上的说明进行了此操作。

package DBTEST;

import org.javalite.activejdbc.Base;

public class makeDB {
    public static void main(String[] args) {
        Base.open("org.h2.Driver", "jdbc:h2:./test", "sa", "");

        User e = new User();
        e.set("username", "John");
        e.set("password", "Doe");
        e.saveIt();


        User.findAll().dump();
        Base.close();
    }
}

我有这个表的用户类

package DBTEST;

import org.javalite.activejdbc.Model;
import org.javalite.activejdbc.annotations.Table;

@Table("USERS")
public class User extends Model {
}

我不断收到此异常

Exception in thread "main" org.javalite.activejdbc.DBException: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "USERS" not found; SQL statement:

任何人都可以帮忙吗?我不知道为什么会这样

4

1 回答 1

0
  • 首先,您的 SQL 在“CREATE USERS”语句中有一个额外的逗号。错误说:“找不到“用户”-这意味着您根本没有桌子!

  • 二、表定义少了一个id,请看https://javalite.io/surrogate_primary_keys

  • 第三,我创建了一个简单的示例项目并在其中添加了您的代码。它按预期工作。该项目可以在这里找到:https ://github.com/javalite/h2-example

运行此程序的输出如下所示:

Model: activejdbc.examples.simple.User, table: 'users', attributes: {ID=1, PASSWORD=Doe, USERNAME=John}

这完全符合预期。

此外,@Table注释不是必需的:https ://javalite.io/english_inflections

于 2020-05-04T16:22:12.267 回答