当前位置: 首页 > news >正文

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

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

这篇文章就到这里吧。

相关文章:

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

前言 在前一篇《普元EOS学习笔记-创建精简应用》中,我已经创建了EOS精简应用。 我之前说过,EOS精简应用就是自己创建的EOS精简版,该项目中,开发者可以进行低代码开发,也可以进行高代码开发。 本文我就记录一下自己在…...

动态住宅代理IP详细解析

在大数据时代的背景下,代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性,而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…...

等保2.0 实施方案之信息软件验证要求

一、等保2.0背景及意义 随着信息技术的快速发展和网络安全威胁的不断演变,网络安全已成为国家安全、社会稳定和经济发展的重要保障。等保2.0(即《信息安全技术 网络安全等级保护基本要求》2.0版本)作为网络安全等级保护制度的最新标准&#x…...

【LeetCode的使用方法】

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

【SGX系列教程】(二)第一个 SGX 程序: HelloWorld,linux下运行

文章目录 0. SGX基础原理分析一.准备工作1.1 前提条件1.2 SGX IDE1.3 基本原理 二.程序设计2.1 目录结构2.2 源码设计2.2.1 Encalve/Enclave.edl:Enclave Description Language2.2.2 Enclave/Enclave.lds: Enclave linker script2.2.3 Enclave/Enclave.config.xml: Enclave 配置…...

网页报错dns_probe_possible 怎么办?——错误代码有效修复

当你在浏览网页时遇到dns_probe_possible 错误,这通常意味着你的浏览器无法解析域名系统(DNS)地址。这个问题可能是由多种原因引起的,包括网络配置问题、DNS服务问题、或是本地设备的问题。教大家几种修复网页报错dns_probe_possi…...

Vue.js 中属性绑定的详细解析:冒号 `:` 和非冒号的区别

Vue.js 中属性绑定的详细解析:冒号 : 和非冒号的区别 在 Vue.js 中,属性绑定是一个重要的概念,它决定了如何将数据绑定到 DOM 元素的属性上。Vue.js 提供了两种方式来绑定属性:使用冒号 : 进行动态绑定,或直接书写属性…...

使用Java实现智能物流管理系统

使用Java实现智能物流管理系统 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何使用Java语言实现智能物流管理系统,这是一个涉及到…...

深圳技术大学oj C : 生成r子集

Description 输出给定序列按字典序的 � 组合,按照所有 � 个元素出现与否的 01 标记串 ����−1,...,�1 的字典序输出. 此处01串的字典序指:先输入的数字对应低位&#x…...

不同操作系统下的换行符

1. 关键字2. 换行符的比较3. ASCII码4. 修改换行符 4.1. VSCode 5. 参考文档 1. 关键字 CR LF CRLF 换行符 2. 换行符的比较 英文全称英文缩写中文含义转义字符ASCII码值操作系统Carriage ReturnCR回车\r13MacIntosh(早期的Mac)LinefeedLF换行/新行\…...

Transformation(转换)开发-switch/case组件

一、switch/case组件-条件判断 体育老师要做一件非常重要的事情:判断学生是男孩还是女孩、或者是蜘蛛,然后让他们各自到指定的队伍中 体育老师做的事情,我们同样也会在Kettle中会经常用来。在Kettle中,switch/case组件可以来做类似…...

Android Gradle 开发与应用 (二): Android 项目结构与构建配置

目录 1. Android 项目的 Gradle 文件结构 1.1 项目根目录 1.2 模块目录 2. Gradle 构建配置详解 2.1 配置 Android 项目的 build.gradle 2.2 配置模块的 build.gradle 2.3 使用 productFlavors 管理多版本应用 2.4 使用 buildConfigField 注入构建常量 在 Android 开发…...

02:vim的使用和权限管控

vim的使用 1、vim基础使用1.1、vim pathname 2、vim高级用法2.1、查找2.2、设置显示行号2.3、快速切换行2.4、 行删除2.5、行复制粘贴 3、权限管理3.1、普通用户和特权用户3.2、文件权限表示 vim是Linux中的一种编辑器,类似于window中的记事本,可以对创建…...

GNeRF代码复现

https://github.com/quan-meng/gnerf 之前一直去复现这个代码总是文件不存在,我就懒得搞了(实际上是没能力哈哈哈) 最近突然想到这篇论文重新试试复现 一、按步骤创建虚拟环境安装各种依赖等 二、安装好之后下载数据,可以用Blen…...

EXCEL返回未使用数组元素(未使用值)

功能简介: 在我们工作中,需要在EXCEL表列出哪些元素(物品或订单)已经被使用了(或使用了多少次),哪些没有被使用。 当数量过于庞大时人工筛选或许不是好办法,我们可以借助公式&…...

系统调用简单介绍

概述 简单理解就是操作系统给我们提供的函数接口,当我们的程序需要执行一些只有操作系统才能完成的工作的时候,我们就要调用操作系统给我们提供的接口来实现这些功能,这些接口就是系统调用。 那什么样的操作是只有操作系统才能完成呢? 比如…...

Mac可以读取NTFS吗 Mac NTFS软件哪个好 mac ntfs读写工具免费

在跨操作系统环境下使用外部存储设备时,特别是当Windows系统的U盘被连接到Mac电脑时,常常会遇到文件系统兼容性的问题。由于Mac OS原生并不完全支持对NTFS格式磁盘的读写操作,导致用户无法直接在Mac上向NTFS格式的U盘或硬盘写入数据。下面我们…...

AI是否能够做决定

AI是在帮助开发者还是取代他们? 我认为AI功能虽然很强大,但是代替不了人,原因就在于人可以做决定,可以承担责任和后果,但是AI不能够为结果负责...

【Excel操作】Python Pandas判断Excel单元格中数值是否为空

判断Excel单元格中数值是为空,主要有下面两种方法: 1. pandas.isnull 2. pandas.isna判断Excel不为空,也有下面两种方法: 1. pandas.notna 2. pandas.notnull假设有这样一张Excel的表格 我们来识别出为空的单元格 import panda…...

C# Opacity 不透明度

WinForms Opacity以下是一些使用 Opacity 属性的示例:设置窗体的透明度:设置按钮的透明度:动态改变控件的透明度:使用定时器改变透明度:在窗体加载时设置透明度: 请注意另外 WPF Opacity以下是一些使用 Opa…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 ​ 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...