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

前言

在前一篇《普元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 这些字段会自动赋值,如何做到的?

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

这篇文章就到这里吧。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sping源码(九)—— Bean的初始化(非懒加载)—mergeBeanDefinitionPostProcessor

序言 前几篇文章详细介绍了Spring中实例化Bean的各种方式,其中包括采用FactoryBean的方式创建对象、使用反射创建对象、自定义BeanFactoryPostProcessor以及构造器方式创建对象。 创建对象 这里再来简单回顾一下对象的创建,不知道大家有没有这样一个疑…

MySQL之备份与恢复(二)

备份与恢复 定义恢复需求 如果一切正常,那么永远也不需要考虑恢复。但是,一旦需要恢复,只有世界上最好的备份系统是没用的,还需要一个强大的恢复系统。 不幸的是,让备份系统平滑工作比构造良好的恢复过程和工具更容易…

优先级队列(堆)学的好,头发掉的少(Java版)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

使用 Ollama 时遇到的问题

题意: ImportError: cannot import name Ollama from llama_index.llms (unknown location) - installing dependencies does not solve the problem Python 无法从 llama_index.llms 模块中导入名为 Ollama 的类或函数 问题背景: I want to learn LL…

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

🍁 个人主页:爱编程的Tom💫 本篇博文收录专栏:Java专栏👉 目前其它专栏:c系列小游戏 c语言系列--万物的开始_ 等等 🎉 欢迎 👍点赞✍评论⭐收藏💖三连支…

springboot 整合 mybatis-plus

一.前言 1. mybatis-plus是什么 mybatis-plus是一个对mybati框架的拓展框架,它在mybatis框架基础上做了许多的增强,帮助我们快速的进行代码开发。目前企业开发中,使用mybati的项目基本会选择使用mybatis-plus来提升开发效率。 2.官网地址&…

Study--Oracle-06-Oracler网络管理

一、ORACLE的监听管理 1、ORACLE网络监听配置文件 cd /u01/app/oracle/product/12.2.0/db_1/network/admin 2、在Oracle数据库中,监听器(Listener)是一个独立的进程,它监听数据库服务器上的特定端口上的网络连接请求&#xff0c…

四十篇:内存巨擘对决:Redis与Memcached的深度剖析与多维对比

内存巨擘对决:Redis与Memcached的深度剖析与多维对比 1. 引言 在现代的系统架构中,内存数据库已经成为了信息处理的核心技术之一。这类数据库系统的高效性主要来源于其对数据的即时访问能力,这是因为数据直接存储在RAM中,而非传统…

p2p、分布式,区块链笔记: 通过libp2p的Kademlia网络协议实现kv-store

Kademlia 网络协议 Kademlia 是一种分布式哈希表协议和算法,用于构建去中心化的对等网络,核心思想是通过分布式的网络结构来实现高效的数据查找和存储。在这个学习项目里,Kademlia 作为 libp2p 中的 NetworkBehaviour的组成。 以下这些函数或…

AI 会淘汰程序员吗?

前言 前些日子看过一篇文章,说国外一位拥有 19 年编码经验、会 100% 手写代码的程序员被企业解雇了,因为他的竞争对手,一位仅有 4 年经验、却善于使用 Copilot、GPT-4 的后辈,生产力比他更高,成本比他更低&#xff0c…

基于java+springboot+vue实现的家政服务平台(文末源码+Lw)299

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

2. Python+Playwright playwright的API

Playwright支持同步和异步两种API,使用异步API需要导入asyncio库,它是一个可以用来实现Python协程的库,更详细介绍可参考Python协程 。我们可以根据自己的偏好选择适合的模式。 同步与异步模式原理 同步操作方式:在代码执行时&am…

SpringBoot 整合 Minio 实现文件切片极速上传技术

Centos7安装Minio 创建目标文件夹 mkdir minio使用docker查看目标镜像状况 大家需要注意,此处我们首先需要安装docker,对于相关安装教程,大家可以查看我之前的文章,按部就班就可以,此处不再赘述!&#x…

学习和发展人工智能:新兴趋势和成功秘诀

人工智能(AI)继续吸引组织,因为它似乎无穷无尽地提高生产力和业务成果。在本博客中,了解学习和发展(L&D)部门如何利用人工智能改进流程,简化工作流程? 学习与发展(L&D)部门领导开始探索如何提高和支持人工智能能力的劳动…

Linux Swap机制关键点分析

1. page被swap出去之后,再次缺页是怎么找到找个换出的页面? 正常内存的页面是通过pte映射找到page的,swap出去的page有其特殊的方式:swap的页面page->private字段保存的是:swap_entry_t通过swap_entry_t就能找到该页面的扇区号sector_t,拿到扇区号就可以从块设备中读…

充电宝哪个牌子比较好用?好用的充电宝推荐!

在如今这个电子设备不离手的时代,充电宝已经成为了我们生活中的必备好物。但面对市面上琳琅满目的充电宝品牌和产品,相信很多朋友都曾陷入过纠结:充电宝哪个牌子比较好用呢?为了解决大家的困惑,经过我精心的筛选和试用…

8.x86游戏实战-OD详解

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:7.x86游戏实战-C实现跨进程读写-跨进程写内存 工具下载:下载 OllyI…

【信即是功夫】人皆有良知在心中

良知就是做人、做事的准则,良知就是天理;实实在在地自信 每个人心中都有一个圣人,只因自己不能真的相信,把这个圣人埋没了 良知在每个人心中,无论你如何做,也无法泯灭它。即使身为盗贼的人,他…

【LeetCode的使用方法】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🔮LeetCode的使用方法 🔮LeetCode 是一个在线编程平台,广泛…

掌握Go语言邮件发送:net/smtp实用教程与最佳实践

掌握Go语言邮件发送:net/smtp实用教程与最佳实践 概述基本配置与初始化导入net/smtp包设置SMTP服务器基本信息创建SMTP客户端实例身份验证 发送简单文本邮件配置发件人信息构建邮件头部信息编写邮件正文使用SendMail方法发送邮件示例代码 发送带附件的邮件邮件多部分…