所以我有一个非常简单的表,我使用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在“ 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