在几分钟内为您的数据库创建一个管理面板全栈应用程序。

2025-06-04

在几分钟内为您的数据库创建一个管理面板全栈应用程序。

如果你将信息存储在关系数据库中,我敢打赌你肯定希望有一个方便的应用程序来查看或编辑这些数据。然后,据我猜测,你开始开发这个应用程序,甚至已经开发出来了。

无论如何,如果您曾经创建过用于处理数据库的应用程序,您就会知道这并不容易。

你必须选择一个技术栈。然后,你必须设计应用程序的架构,以确保安全性、速度和数据的准确性等。

幸运的是,已经有许多框架和库可以用作全栈应用程序的构建块。

但是,编写和调试代码仍然需要花费大量时间,即使你是一位非常有经验的软件工程师。

因此,我们决定创建一个工具,使用这些“块”为您的数据库生成应用程序代码。我们希望生成的源代码开箱即用。即使无法使用,您也可以将其用作您自己的应用程序的种子。

我们做到了!来认识一下IKODIX,一个用于全栈应用程序的在线源代码生成器。

IKODIX 不需要访问您的数据库即可生成代码。它采用声明式方法。

我不想对 IKODIX 进行冗长乏味的描述——我们直接开始创建一个小应用程序吧。这应该不会超过 50-60 分钟。

即使您已经有一些可用的测试数据库,我们也可以在 Docker 中运行 MySQL 数据库来加快该过程。

运行数据库

在本地主机上安装Docker Desktop。我们不仅需要它来运行数据库,还需要它来运行生成的应用程序。

  • 创建一个todo-db目录,进入该目录并创建一个docker-compose.yml文件
  • 将以下代码复制到此文件中
services:
  db:
    image: mysql:8.0.19
    volumes:
      - ./data:/var/lib/mysql
      - ./init.sql:/init.sql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=todo
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
    expose:
      - 3306
    ports:
      - 3306:3306
    command: --init-file /init.sql
Enter fullscreen mode Exit fullscreen mode
  • 创建一个init.sql文件并将以下代码复制到其中
CREATE DATABASE IF NOT EXISTS todo;
USE todo;
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `full_name` varchar(1000) NOT NULL,
  PRIMARY KEY (`id`)
);
DROP TABLE IF EXISTS `task_status`;
CREATE TABLE `task_status` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `status_name` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
);
DROP TABLE IF EXISTS `task`;
CREATE TABLE `task` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `description` varchar(5000) NOT NULL,
  `to_date` date DEFAULT NULL,
  `assignee_id` bigint DEFAULT NULL,
  `status_id` bigint NOT NULL,
  PRIMARY KEY (`id`),
  KEY `task_employee_id_fk` (`assignee_id`),
  KEY `task_task_status_id_fk` (`status_id`),
  CONSTRAINT `task_employee_id_fk` FOREIGN KEY (`assignee_id`) REFERENCES `employee` (`id`),
  CONSTRAINT `task_task_status_id_fk` FOREIGN KEY (`status_id`) REFERENCES `task_status` (`id`)
);
Enter fullscreen mode Exit fullscreen mode
  • 在目录内创建另一个data目录todo-db
  • 在终端中运行命令:docker-compose up -build
  • 等到容器报告已准备就绪...

IKODIX-MySQL 服务器已准备就绪

现在,您的计算机上已经有一个包含todo数据库的 Docker 容器在运行。它包含 3 个表:employeetasktask_status

打开 IKODIX

我们可以开始在 IKODIX 中描述表格了。打开 IKODIX。转到“数据表”,然后按照如下说明添加包含列的表格。

IKODIX - 数据表屏幕

员工

  • 添加employee表。默认情况下,它已经有一个强制Primary Key列,其类型Long和名称为id。这对我们来说没问题,因为实际表employee有一个名为 的主键列id这适用于我们数据库中的所有其他表。
  • 添加full_name具有类型的列String

task_status

  • 添加task_status表格。
  • 添加status_name类型为 的列String

任务

  • 添加task表格。
  • 添加description类型的列String
  • 添加类型assignee_id的列Long
  • 将该列添加status_idLong
  • 添加to_date类型的列Date

IKODIX - 数据表

一旦我们有了表格列表,我们就可以开始创建投影。

投影是来自一些关联表的数据。这些数据将在前端数据网格的单独页面上显示。您可以将其编写用于从数据库中选择某些记录的 SQL 查询进行类比。

你可能已经猜到了,我们的数据库包含一些任务的信息。我们首先需要查看的是所有任务以及分配给这些任务的员工。

创建任务投影。

IKODIX - 创建新投影

我们面前将会打开一个图表,我们需要在其中添加我们想要查看记录的表。

IKODIX - 空图

我们先添加task表。第一个表是图中的根表,我们会将其他表链接到它。这与我们编写 SQL 查询的方式非常相似。

IKODIX - 将根表添加到图表中

让我们添加task_status表格。将status_id表格中的列链接task到表格id中的列task_status

添加employee表格。将assignee_id表格中的列链接task到表格id中的列employee

IKODIX - 图表上的链接表

让我们转到“视图”选项卡。在这里,我们应该将图表中的所有表列标记为Visible我们希望在前端看到的列。

标记任务表中的description和列。在网格列标题to_date中为这些列设置合适的名称

full_name将表中的列employeestatus_name中的列设置为可见task_status table。并为其指定名称。

IKODIX - 数据网格设置

您可以重新排列数据网格中显示的列的顺序

IKODIX - 数据网格列顺序

接下来,转到“创建”选项卡。在此选项卡中,我们配置用于为图表中的根表创建记录的表单。也就是说,该记录将仅在task表中创建。

我们将字段标记descriptionto_date可见,并为它们命名并赋予相应的字段类型。

IKODIX - 创建表单

但除了这些字段之外,我们还有其他表的链接字段:assignee_idstatus_id。让我们将它们标记为可见,命名它们,然后选择Select类型。

IKODIX - 创建表单

一旦我们将它们标记为可见,我们就可以在“选择控件设置”部分中选择自定义下拉列表。我们可以从链接表中指定用于下拉列表中名称的列。

选择status_name的列status_id,然后full_name选择 的列assignee_id

IKODIX - 选择控制设置

转到“更新”选项卡并执行与“创建”选项卡中相同的操作

IKODIX - 更新表格

我们已经准备好了第一个投影。现在,IKODIX 将能够生成一个应用程序,其中将有一个页面,其中包含所有任务及其分配的员工。并且我们将能够通过输入表单添加任务。

但是我们没有一个页面和输入表单来将员工添加到列表中。此外,也没有用于输入工作状态的页面和表单。

这很容易解决。为员工和状态创建两个投影:EmployeesStatuses。在每个投影上分别添加一个表:employeetask_status

如果您尝试自己在每个投影的“视图”“创建”“更新”选项卡中配置数据网格和表单,可能会更好。

IKODIX - 新投影

当你完成新投影中的所有设置后,我们就可以开始生成应用程序的源代码。

生成源代码

但还有一件事还没完成——我们需要选择数据库类型 MySQL。让我们进入“系统设置”部分,设置我们想要的数据库类型。

IKODIX - 系统设置

单击“下载源代码”按钮并将应用程序命名为“ToDo Admin”之类的名称。

IKODIX - 下载代码

将档案保存到本地主机的空todo-app目录中。在此目录中解压档案。

现在我们可以开始使用我们的应用程序了。我们不需要安装任何额外的东西来启动应用程序。

打开README.txt文件并仔细阅读其中的内容。

根据手册,运行应用程序有两种模式:demodev

演示是指构建并运行一个可供使用的应用程序。

Dev是指应用程序启动进行开发。前端的热加载 (Hot Reloading)就是在这种模式下工作的。

让我们以演示模式运行该应用程序,看看它是如何开箱即用的。

开始之前,我们需要配置数据库访问权限。这可以在.env文件中完成。找到变量jdbc:mysql://host.docker.internal:3306/tododataSource.url并将其值替换。然后将用户名 ( ) 替换为myuser,将密码 ( ) 替换为mypassword。保存文件。dataSource.usernamedataSource.password

运行应用程序

两个 Docker 容器用于运行应用程序的所有部分。但我们只需运行命令app.sh demo(或app.cmd demoWindows 系统下的命令),然后等待应用程序启动即可。

IKODIX - 以演示模式运行应用程序

由于应用程序的容器在后台运行,我们需要跟踪它们。让我们在不同的终端中运行这两个app.sh client-log命令app.sh service-log

一旦我们看到一切正常运转,我们就可以使用地址http://localhost:3030打开浏览器

系统中默认有一个具有管理员权限的用户。因此,我们将以他的账户登录,用户名:administrator,密码:administrator_password

IKODIX - 应用程序中的登录页面

我们的表中没有记录,所以让我们尝试获取新员工、新状态并创建任务。

IKODIX——创建员工记录

IKODIX - 状态列表

IKODIX-创建新任务

IKODIX - 任务列表

尽管该应用程序开箱即用,但我们需要更改左上角的公司名称。

为了做到这一点,让我们在开发模式下运行该应用程序。只需运行命令即可app.sh dev

让我们等待所有 Docker 容器启动。为了确保它们已准备就绪,请在不同的终端中使用以下命令:app.sh client-log和。app.sh service-log

准备好后,让我们打开浏览器,输入地址http://localhost:3030

WorkspacePage.tsx现在,在目录中的前端代码中找到该文件to-do-admin-client/src/features/layout,并将文本“公司名称”替换为我们需要的值:“ToDo Admin”。

IKODIX - 应用程序源文件

保存文件中的更改...并在浏览器中查看页面。值应该会自动更改。

制作前端的 Docker 容器是为了实现热重载

完成最终修改后,您需要再次运行app.sh demo—— 然后应用程序的各个部分将被构建以供生产使用。您可以在to-do-admin-client/build和 中找到发行版to-do-admin-service/target

如果您要扩展应用程序的功能,请首先阅读和目录README.md中包含代码结构详细描述的文件。这将帮助您轻松理解代码。to-do-admin-clientto-do-admin-service

希望您不会太累,并且享受使用IKODIX构建应用程序的乐趣。无论如何,这比您自己开发此类应用程序要快得多,也舒服得多。

如果您有任何意见或问题,请随时在我们的论坛上发布:IKODIX 论坛

还可以通过我们的 Twitter 帐户关注 IKODIX 的新品发布:@kodix

谢谢你!!!

文章来源:https://dev.to/alex_pustovalov/create-an-admin-panel-full-stack-app-for-your-database-in-minutes-1e65
PREV
图像可访问性 101:它是什么以及为什么重要?
NEXT
可扩展 CI/CD 流程的技巧和窍门