使用javalite找不到表异常

问题描述 投票:0回答:1

所以我有一个非常简单的表,我使用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();
    }
}

我对此表有一个类Users

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:

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

sql jdbc activejdbc javalite activeweb
1个回答
0
投票
  • 首先,您的SQL在“ CREATE USERS”语句中有一个逗号。错误显示:“找不到可用的“ 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

© www.soinside.com 2019 - 2024. All rights reserved.