我知道在同样多的网站上有很多关于如何做到这一点的教程,但这是我第一次尝试将数据库表连接到 UI,所以例如,当 Spring Boot/MyBatis/Vaadin 的版本是与我正在使用的不同,或者他们使用 JPA 或 JDBC 而不是 MyBatis,我不知道如何更改它以适应我的具体情况。
当人们说“这与任何其他方法没有什么不同”时,这根本没有帮助,因为正如我之前所说,我以前从未这样做过。教程代码示例中的注释和类在每个新版本中都被删除和弃用,没有明确说明如何更改它以与新版本一起使用。我一直在研究各种 API(Spring Boot、Vaadin、MyBatis)大约一个月,对每个 API 的作用有一个模糊的了解,但不知道它们如何协同工作以实现为数据库制作 UI 的预期结果。我只是对教程中一个不推荐使用的注释或类如何导致整个事情崩溃感到非常沮丧。我知道那是冗长的,但我只是想让你们都明白我来自哪里。我'
我当前的依赖项是:
- Maven : 4.0.0
- Spring Boot: 2.1.2.RELEASE
- Vaadin: 12.0.4
- MyBatis Spring Boot Starter: 2.0.0
我从 Spring Initializr 获得了启动包,后来添加了 MyBatis 依赖项。
我有一个 PostgreSQL 10.5 数据库,其中包含 17 个表,最终将成为商店经理的 UI,用于查看收到的库存发货、员工工作时间和其他任务。
我的数据库名为“商店”,用户:“商店”,密码:“商店”(如果重要)。
例如,这些是我的一些表:
CREATE TABLE IF NOT EXISTS supplier (
id SERIAL,
brand VARCHAR(30) NOT NULL,
phone VARCHAR(15) NOT NULL,
address VARCHAR(100) NOT NULL,
CONSTRAINT pk_supplier PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS shipment (
id SERIAL,
shipdate DATE NOT NULL,
shiptime TIME NOT NULL,
status VARCHAR(10) DEFAULT 'arrived' NOT NULL,
sid INT NOT NULL,
CONSTRAINT pk_shipment PRIMARY KEY (id),
CONSTRAINT fk_shipment_supplier FOREIGN KEY (sid)
REFERENCES supplier(id)
);
CREATE TABLE IF NOT EXISTS shipmentcontains (
shipid INT NOT NULL,
iid INT NOT NULL,
quantity INT NOT NULL,
price DEC(6,2) NOT NULL,
CONSTRAINT pk_shipmentcontains PRIMARY KEY (shipid, iid),
CONSTRAINT fk_shipmentcontains_shipment FOREIGN KEY (shipid)
REFERENCES shipment(id),
CONSTRAINT fk_shipmentcontains_item FOREIGN KEY (iid)
REFERENCES item(id)
);
CREATE TABLE IF NOT EXISTS item (
id SERIAL,
itemtype VARCHAR(25) NOT NULL,
itemsize VARCHAR(10) NOT NULL,
price DEC(5,2) NOT NULL,
sid INT NOT NULL,
CONSTRAINT pk_item PRIMARY KEY (id),
CONSTRAINT fk_item_supplier FOREIGN KEY (sid)
REFERENCES supplier(id)
);
CREATE TABLE IF NOT EXISTS employee (
id SERIAL,
lastname VARCHAR(40) NOT NULL,
firstname VARCHAR(40) NOT NULL,
hourlywage DEC(4,2),
manager BOOLEAN DEFAULT false NOT NULL,
CONSTRAINT pk_employee PRIMARY KEY (id)
);
如果有人可以给我一个代码示例,说明如何让其中一个显示在网格中,我相信我可以弄清楚如何完成其余的工作。我的application.properties
文件中有连接详细信息,但我发现对于较新版本的 MyBatis,这不是必需的,并且@Update
可以在 SQL 语句上使用注释来替换它。另外,用简单的英语来说,Spring Bean 到底是什么?我希望那不是太长……或者不够长。
编辑:Vaadin 12 的当前版本是 12.0.4