普元EOS学习笔记-低开实现图书的增删改查

news2024/10/7 10:25:44

前言

在前一篇《普元EOS学习笔记-创建精简应用》中,我已经创建了EOS精简应用。

我之前说过,EOS精简应用就是自己创建的EOS精简版,该项目中,开发者可以进行低代码开发,也可以进行高代码开发。

本文我就记录一下自己在EOS精简应用下进行低开的过程,实现图书信息的简单的增删改查的功能。

另外,普元EOS最新版8.3.1发布了,从本文开始,将采用EOS8.3.1作为开发工具。

需求

需求比较简单,这也不是真实的项目,是对图书分类和图书信息进行增删改查。

图书分类的关键字段:id (主键) 、typeName(分类名称) 

图书的关键字段: id(主键)、 typeId(分类ID)、 bookTitle(图书标题)、bookAuth(作者) 

功能1 : 对图书分类进行增删改、列表

功能2: 对图书进行增删改、列表

功能3:图书列表支持对图书名称、分类筛选的查询。

功能4: 删除图书分类的时候,如果图书分类下有图书,要提示无法删除。

就这么简单的功能吧。

这里埋一个坑,这个图书系列的我后面会写几篇文章,这是第一篇,我最终是希望用EOS写一个简单的公司图书阅览室的借阅管理的软件

数据结构设计

图书分类(bk_type)

drop table if exists bk_type;

CREATE TABLE `bk_type` (
  `id` varchar(32) NOT NULL,
  `type_name` varchar(32) NOT NULL COMMENT '图书分类名称',
  `create_time` datetime NOT NULL COMMENT '新增时间',
  `create_user` varchar(64) NOT NULL COMMENT '新增用户',
  `update_time` datetime DEFAULT NULL COMMENT '最后更新时间',
  `update_user` varchar(64) DEFAULT NULL COMMENT '最后更新人',
  `sort_no` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
  `version` int(11) NOT NULL DEFAULT '1' COMMENT '乐观锁',
  PRIMARY KEY (`id`),
  UNIQUE KEY `unq_type_name` (`type_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

图书信息(t_book_info):


drop table if exists bk_book_info ;

CREATE TABLE `bk_book_info` (
  `id` varchar(32) NOT NULL,
  `book_name` varchar(128) NOT NULL COMMENT '图书名称',
  `book_auth` varchar(128) DEFAULT NULL COMMENT '图书作者',
  `book_type_id` varchar(32) DEFAULT NULL COMMENT '图书类型id',
  
  `create_time` datetime NOT NULL COMMENT '新增时间',
  `create_user` varchar(64) NOT NULL COMMENT '新增用户',
  `update_time` datetime DEFAULT NULL COMMENT '最后更新时间',
  `update_user` varchar(64) DEFAULT NULL COMMENT '最后更新人',
  `sort_no` int(11) NOT NULL DEFAULT '0' COMMENT '顺序编号',
  `version` int(11) NOT NULL DEFAULT '1' COMMENT '乐观锁',
  
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

表信息就不解释了,看注释都能看明白。

创建和启动精简应用

这个功能不再赘述了,见前一篇《普元EOS学习笔记-创建精简应用》

本文创建的精简应用的名称是 express10 ,项目端口是 28010 。

因此,项目启动后,可以在浏览器输入地址 http://127.0.0.1:28010/ 访问。

接下来登录,账号密码是 admin 和 000000 ,默认密码是 000000,第一次登录会提示修改密码。

首先打开的是 工作台窗口,点击工作台,选择开发中心,进入到开发中心。

什么是工作台?

工作台其实不用解释,就是主操作页面,列出了工作日历、待办等若干窗口。

什么是开发中心?

EOS的开发中心是进入EOS的低开界面,是一个基于web界面的ide。

在开发中心可以通过拖拉拽的方式进行表单设计、实现增删改查、服务编排、流程设计等。

服务编排是比较牛的功能。我们知道,软件开发就是写代码执行循环判断,然后调用各种类库的方法。这些功能,在EOS中可以通过服务编排来实现,类似拖拉拽生成一个流程,将程序执行的循环、判断、调用类库这些集成在一个流程中实现。

流程设计实现了工作流,EOS的子产品BPS实现了工作流引擎,在开发中心的ide中可以进行工作流程图的编排。

在开发中心的主页面,如下所示,点击开发按钮,进入低开ide。

下图是普元EOS低开ide界面。

开始图书分类的增删改查

接下来,就在EOS低开ide下进行图书分类的增删改查。

1 创建构建包

在左侧上方点击“新建构建包”按钮,将打开新建构建包的功能。

1.1 什么是构建包呢?

EOS的构建包可以理解为maven项目中的子模块,比如我们创建的express10项目,下面有4个构建包分别是 api  boot  core  和 model  (大家知道,我省略了 com.primeton.eos.express10 这个统一前缀) 

所以,可以看出来,构建包应该是maven的子模块。

至于EOS的低开ide中创建的构建包如何与 express10进行对应,这里不做详细讲解,以后用到了在实践中理解。

构建包创建后,左侧可以看到构建包的菜单

与express10下的model构建包比较一下

低开ide中的实体包下存放数据表的数据实体,在model模块中是数据包下存放的也是数据实体。

低开ide中的页面包存放的是拖拉拽生成的页面,这个高开ide的项目中是没有的,高开要创建页面,是需要额外的工具开发页面的。

低开ide中的流程包与高开ide项目下的流程包是一样的,都是存放流程图的。

低开ide中的服务包对应的是高开ide项目下的EOS服务+构件,是通过流程图拖拉拽实现服务编排的功能。

大概了解一下构建包的概念就行了,我们进入下一步。

2 查看图书分类的数据源

在页面的右侧可以看到有一个数据源标签,点击可以看到default数据源下的数据表。

default数据源:在项目boot下的user-config.xml中配置的default数据源。

注意:EOS是支持多数据源的,如果配置了多数据源,在这里会看到多个数据源。

可以看到数据源右侧有个闭着的眼睛,点开就可以看到数据源的所有数据表,闭眼后,只显示自己创建的数据表,eos自有的数据表是不显示的。

3 创建实体集

在实体菜单右键,然后点击“新建实体集”,打开创建实体集的窗口。实体集就当做是数据实体的集合。

实体集窗口下,可以将数据表拖拽进来。

4 从图书分类实体生成页面

在新拖拽生成的图书分类实体上右键,点击生成页面。

接下来,就可以看到新增页面,和图书分类的列表页面。

在之后的可测试新增、编辑、删除等操作。

遗留问题

1 主键生成方式,是顺序值,我个人习惯用uuid做主键,如何用uuid来生成主键呢?

2 这里有个乐观锁的字段 version,是什么意思?怎么用?

3 create_time  create_user  update_time  update_user 这些字段会自动赋值,如何做到的?

这些问题以后我再说明吧。

这篇文章就到这里吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1890342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Halcon支持向量机

一 支持向量机 1 支持向量机介绍: 支持向量机(Support Vector Machine,SVM)是Corinna Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别表现出许多特有的优势。 2 支持向量机原理: 在n维空间中找到一个分类超平面…

配置Uptime Kuma固定前缀

在做ICT集成项目时,遇到需要对现网接口进行拨测的需求。搜索后尝试使用开源的Uptime Kuma组件完成现网接口拨测。 但该项目有个问题就是默认不支持配置固定前缀,这对现网进行请求转发会造成较大的影响。通过查看该项目的github后找到了问题的解决方案。S…

【C语言】指针经典例题

题1&#xff1a; #include <stdio.h>int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&#xff1f; 解答如下&#xff1a; 题2&#xff1a; #include <std…

echarts-wordcloud:打造个性化词云库

前言 在当今信息爆炸的时代&#xff0c;如何从海量的文本数据中提取有用的信息成为了一项重要的任务。词云作为一种直观、易于理解的数据可视化方式&#xff0c;被广泛应用于文本分析和可视化领域。本文将介绍一种基于 echarts-wordcloud 实现的词云库&#xff0c;通过其丰富的…

嵌入式C语言中指针与链表的关系详解

假定给你一块非常小的内存,这块内存只有8字节,这里也没有高级语言,没有操作系统,你操作的数据单位是单个字节,你该怎样读写这块内存呢? 注意这里的限定,再读一遍,没有高级语言,没有操作系统,在这样的限制之下,你必须直面内存读写的本质。 这个本质是什么呢? 本质…

Java同步包装器

通过 Collections.synchronizedList() 方法将一个普通的 ArrayList 包装成了线程安全的 List&#xff1a; import java.util.*;public class SynchronizedWrapperExample {public static void main(String[] args) {// 创建一个非线程安全的 ArrayListList<String> list…

Redis理解【精细】【快速上手】

目录 1. 了解3V和3高 2.什么是redis 3. redis可以做什么 4. Windows安装 5. 使用redis客户端操作redis 5.1 redis基本命令 5.1.1 切换数据库 5.1.2 查看当前数据库的大小 5.1.3 查看当前数据库所有的key ​​​​​​​ 5.1.4 清空当前数据库所有key 5.1.5 清空所…

在Linux操作环境下搭建内网源

在修改配置文件之前都应该有备份。 比如在/目录下专门创建一个目录用来储存文件的备份。 1.安装vsftpd软件 首先使用命令yum search ftpd 来查看当前Linux操作系统下是否有ftpd软件。 随后使用yum install vsftpd&#xff0c;来安装vsftpd软件 2.修改vsftpd的配置文件&…

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的&#xff0c;最好用的证件照制作软件&#xff0c;没有之一&#xff01; 我是阿星&#xff0c;今天要给大家安利一款超实用的证件照工具&#xff0c;一键换底&#xff0c;自动排版&#xff0c;免费无广告&#xff0c;让你在家就能轻松搞定证件照&#…

CXL-GPU: 全球首款实现百ns以内的低延迟CXL解决方案

数据中心在追求更高性能和更低总拥有成本&#xff08;TCO&#xff09;的过程中面临三大主要内存挑战。首先&#xff0c;当前服务器内存层次结构存在局限性。直接连接的DRAM与固态硬盘&#xff08;SSD&#xff09;存储之间存在三个数量级的延迟差异。当处理器直接连接的内存容量…

HbuilderX:安卓打包证书.keystore生成与使用

前置条件 已安装jdk或配置好jre环境。 .keystore生成 打开cmd,切换到目标路径,输入以下命令, keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore 输入密钥库口令(要记住), 然后输入一系列信息, …

七大排序算法的深入浅出(java篇)

&#x1f341; 个人主页&#xff1a;爱编程的Tom&#x1f4ab; 本篇博文收录专栏&#xff1a;Java专栏&#x1f449; 目前其它专栏&#xff1a;c系列小游戏 c语言系列--万物的开始_ 等等 &#x1f389; 欢迎 &#x1f44d;点赞✍评论⭐收藏&#x1f496;三连支…

面试题 4:阐述以下方法 @classmethod, @staticmethod, @property?

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

CesiumJS【Basic】- #058 绘制网格填充多边形(Entity方式)-使用shader

文章目录 绘制网格填充多边形(Entity方式)-使用shader1 目标2 代码2.1 main.ts绘制网格填充多边形(Entity方式)-使用shader 1 目标 使用Entity方式绘制绘制网格填充多边形 - 使用shader 2 代码 2.1 main.ts import * as Cesium from cesium;// 创建 Cesium Viewer 实例…

MyBatis踩坑记录-多表关联字段相同,字段数据覆盖问题

MyBatis踩坑记录-多表关联字段相同&#xff0c;字段数据覆盖问题 1. 背景描述2. 实体记录3. 错误映射3.1 造成的影响 4. 解决办法4.1 修改映射文件 5. 修复后的效果5.1 返回的数据5.2 正确展示 7. end ~ 1. 背景描述 现有一下业务&#xff0c;单个任务下可能会有多个子任务&am…

【日记】在街上跳舞被同事看见了(470 字)

正文 昨晚跳舞&#xff0c;照例在街上表演&#xff0c;被单位里的保洁阿姨撞见了…… 我以为这就完了&#xff0c;结果她还拍了视频发给做饭阿姨。晚上吃饭无意间聊起才知道有这回事。我竟一时间不知该哭还是该笑……. 今天非常非常闲。虽然不是没工作&#xff0c;只是我懒得去…

客户端渗透

1.一键可执行程序 2.给程序加壳 3.宏病毒感染文档 4.Android apk 利用 1.一键可执行程序 介绍&#xff1a;我们要进行客户端渗透&#xff0c;我们生成一个可执行程序&#xff0c;也是简单粗暴&#xff0c;MSF建立监听&#xff0c;把它发给受害者&#xff0c;只要受害者点击…

CAN学习笔记

学习链接&#xff1a;CAN学习笔记&#xff08;1&#xff09;_can sjw-CSDN博客 内容全部取自链接&#xff0c;非原创。用于自己学习和记录&#xff0c;如有错误请指正。如果侵权了&#xff0c;请联系我删掉。 CAN主要有两种物理层&#xff0c;1.闭环的ISO11898 2.开环的ISO1…

Django学习第三天

python manage.py runserver 使用以上的命令启动项目 实现新建用户数据功能 views.py文件代码 from django.shortcuts import render, redirect from app01 import models# Create your views here. def depart_list(request):""" 部门列表 ""&qu…

【JVM-05】Java内存区域(运行时数据区)、对象创建过程、内存布局

【JVM-05】Java内存区域即运行时数据区、对象创建过程、内存布局 1. 介绍下Java内存区域(运行时数据区)1.1 程序计数器(线程私有)1.2 虚拟机栈(线程私有)1.3 本地方法栈(线程私有)1.4 Java堆(线程共享)1.5 方法区(线程共享)1.5.1 方法区和永久代的关系1.5.2 常用参数1.5.3 为什…