普元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)

sql 复制代码
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):

sql 复制代码
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 这些字段会自动赋值,如何做到的?

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

这篇文章就到这里吧。

相关推荐
小二·几秒前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic23 分钟前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王25 分钟前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康30 分钟前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神1 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
qq_327342731 小时前
Java实现离线身份证号码OCR识别
java·开发语言
阿龟在奔跑3 小时前
引用类型的局部变量线程安全问题分析——以多线程对方法局部变量List类型对象实例的add、remove操作为例
java·jvm·安全·list
飞滕人生TYF3 小时前
m个数 生成n个数的所有组合 详解
java·递归
代码小鑫3 小时前
A043-基于Spring Boot的秒杀系统设计与实现
java·开发语言·数据库·spring boot·后端·spring·毕业设计
真心喜欢你吖3 小时前
SpringBoot与MongoDB深度整合及应用案例
java·spring boot·后端·mongodb·spring