普元EOS学习笔记-高低开结合方式实现图书的增删改查

news2024/11/13 15:38:32

1 前言

在《普元EOS学习笔记-低开实现图书的增删改查》的文章中,我描述了在精简应用中,基于低开实现图书分类的增删改查的操作,是为了简单展示EOS低开的能力。

低开天生会有一些问题,这个咱就不啰嗦了。而且,那篇文章我也留了一些问题,比如id如何以uuid方式生成,还有version字段是干什么的,这些问题用低开都没法解决。

这篇文章,我将描述在精简应用中,基于高开实现图书分类的增删改查。

2 数据表结构

数据表结构依旧采用 《普元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

3 创建精简应用

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

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

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

4 创建数据集

Java操作数据库,基于ORM的思想,需要创建数据实体。

EOS低开采用创建实体集的方式,来实现ORM。

EOS高开中,可以创建数据集(dataset)来实现ORM。

高开创建数据集,首先要创建数据库连接,然后直接从数据表反向生成数据集(dataset) 。

4.1 在EOS 的ide中创建数据库连接

打开EOS ide,找到Data source Explorer 视图。

如果找不到这个视图,可以在菜单 -- 窗口 -- 显示视图 -- Data source explorer 打开该视图。

在Data Source Explorer 视图,选择 Database connections 右键,点击 New ,创建数据库连接。

呼唤出 New  Connection Profile窗口,选择对应的数据库驱动。本案例采用的数据库是 MySQL5.7 ,所以应该选择MySQL5.7的驱动,但选择MySQL后发现没有 5.7这个版本,那么就选择MySQL驱动的最高版本,然后手动制定MySQL-connection的java驱动jar文件。本案例就是手动制定的mysql-connection.jar文件的。

  • 选择数据库类型,并填写数据库连接名称

  • 选择mysql的驱动

选择了数据库类型后,点击下一步,进入到选择mysql驱动,并填写数据库连接信息的窗口。

数据库驱动 Drivers的下拉菜单中默认是空的,点击右侧的图表,打开选择驱动菜单的窗口。

看到最高版本是5.6,因为本案例采用的mysql版本是 5.7,那么这里就选择5.6这个版本吧。

但是选择后,发现出现红色异常图标,因为EOS默认是没有这个版本的mysql的驱动的,需要手动选择mysql的驱动文件。mysql的驱动文件直接在电脑上选择合适的jar文件即可,我选择的是 mysql-connector-j-8.0.33.jar 。

选中 Mysql5.6Driver后,选择上方第一个 tab(JAR List )。然后点击 Add JAR/Zip按钮,选择 mysql-connector-j-8.0.33.jar 文件即可。

建立了数据连接后,连接后,会看到数据库下的所有数据表。

bfp_xxxx   eos_xxx  lc_xxx  这些数据表,不用管,这些是EOS自带的一些数据表,业务数据库需要增加这几个表。

关键是 bk_type  和  bk_book_info 这两个数据表,这是图书分类和图书信息数据表。

针对这两个表,我们要在ide中创建数据实体,然后在低开平台针对数据实体创建页面。

4.2 基于数据表创建数据实体

在model构件下,选择 com.primeton.eos.express10.model 包,右键 - 创建 - 数据集。

填写实体名称等信息。

BookDataset穿件成功后,双击打开数据集操作页面。

然后,拖拽Data Source Explorer 中数据包 bk_type 到数据操作窗口,生成了BkType的数据实体。

生成数据实体后,双击,可以进行若干操作。这里有几个点我需要说明一下

1 主键生成策略: EOS默认采用的主键是顺序生成,这个我是不喜欢的,修改策略位 自动生成uuid 。

2 乐观锁: 必须是有version字段,这个字段就会成为乐观锁。关于乐观锁的概念,请自行百度,个人认为还是很有用的。

3 创建人、创建时间、最后更新人、最后更新时间:这是4个字段,命名固定位 create_user create_time  update_user  update_time ,这4个字段命名是不能变的,EOS会自动维护这4个字段。

5 在低开中基于数据实体创建页面

启动项目,然后afcenter中进入低开ide中。

直接创建页面,在创建页面的时候选择数据实体,就可以从高开的数据实体生成页面了。

6 结尾

至此,基于高开生成数据实体,基于低开创建页面,高低开结合进行开发的方式就实现了。

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

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

相关文章

(kali关怀版)kali调整字体图标显示大小

字体大小调整(图标字体) 字体在左上角搜apprence 图标大小调整 图标在桌面右键点apprence 任务栏大小调整 任务栏在上面右键,选择panel preference 终端字体大小调整 终端字体用ctrl和加号减号进行缩放 属于是kali关怀版了:) 还可指定锁屏和休眠时间&#…

科研绘图系列:Python语言箱线图

介绍 不同分组的python语言箱线图 加载Python包 import sys import pandas as pd import numpy as np import scipy as sp from scipy import stats import randomimport seaborn as sns import matplotlib.pyplot as plt from matplotlib

杂项复现-中间件

一、Apache HTTPD 多后缀解析漏洞 一、Apache HTTPD 多后缀解析漏洞 在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。 1、上传一个…

virtualbox 启动虚拟机后无法进入系统桌面、内存错误

我在virtualbox中创建了一个linux虚拟机、一个win10虚拟机,两个都在使用中偶尔遇到过启动问题。 解决方法1:先无界面启动,再显示界面 linux虚拟机 虚拟机启动后,进入桌面不到两分钟,就报错内存不可访问,…

大型、复杂、逼真的安全服和安全帽检测:数据集和方法

智能升级工地安全:SFCHD数据集与SCALE模块介绍 在人工智能(AI)技术飞速发展的今天,其在建筑工地安全领域的应用正逐渐展现出巨大潜力。尤其是高风险行业如化工厂的施工现场,对工人的保护措施要求极为严格。个人防护装…

PyTorch 基础学习(3) - 张量的数学操作

下面是关于PyTorch中常见数学操作的概述和教程,包括逐点运算、比较操作、线性代数操作等,突出每个操作的重点用法和示例。 逐点操作 (Pointwise Operations) 1. torch.abs 功能: 计算输入张量的每个元素的绝对值。用法: torch.abs(input)示例:import …

Oracle 专用/共享服务器连接模式(Dedicated/Shared Server)

当会话通过客户端连接到Oracle数据库时,根据服务器处理请求方式的不同,可以有两种连接模式,一种称为专用服务器连接(Dedicated Server),另外一种称为共享服务器连接(Shared Server)。…

企业源代码也需要加密!十款好用的源代码加密软件排行榜

在当今竞争激烈的商业环境中,企业的源代码是其核心资产之一。为了保护这些宝贵的知识产权不被泄露,源代码加密成为了众多企业的重要举措。2024 年,市面上出现了众多功能强大的源代码加密软件。接下来,就让我们一同来探索十款备受好…

基于A*搜索算法的坦克动荡2路径规划问题

前言 《坦克动荡2》(Tank Trouble 2)是一款适用于PC平台的射击类网页游戏。游戏设定在一个迷宫般的竞技场中,玩家需要控制坦克,在对手摧毁自己之前先摧毁对方。本题目旨在各位自己实现A-star算法,并为接下来学习并自行编写替换nav2中的Plann…

【Linux】详解自定义Shell管道 | 构建简易进程池

目录 续:通信 4 种情况 应用场景 1. 自定义 shell 管道 1. 包含头文件 2. 解析命令函数 详细步骤 3. 执行命令函数 4. 主函数 总结 2. 使用管道实现一个简易版本的进程池 代码结构 代码实现 channel.hpp tasks.hpp main.cc 子进程读取任务&#xff…

企业数据接口:被执行人(人员)查询

根据搜索关键字、名称等参数,获取被执行人相关信息 批量获取企业信息

摄影曝光:光圈大小认知

写在前面 学习整理《摄影曝光:拍出好照片的49个关键技法》读书笔记博文内容涉及光圈,景深认知 ,以及光圈和镜像的选择适合小白认知理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好好做事,所以唯…

基于hadoop的网络流量分析系统的研究与应用

目录 摘要 1 Abstract 2 第1章 绪论 3 1.1 研究背景 3 1.2 研究目的和意义 4 1.2.1 研究目的 4 1.2.2 研究意义 6 1.3 国内外研究现状分析 7 1.3.1 国内研究现状 7 1.3.2 国外研究现状 9 1.4 研究内容 11 第2章 Hadoop技术及相关组件介绍 12 2.1 HDFS的工作原理及…

小阿轩yx-Docker Compose与私有仓库部署

小阿轩yx-Docker Compose 与私有仓库部署 Docker 的网络模式 Docker 四种网络模式 网络模式参数说明host 模式- - nethost 容器和宿主机共享 Network namespace container 模式- - net{id} 容器和另外一个容器共享 Network namespace。 kubernetes 中的pod就是多个容器共享一…

Win11让局域网内其他电脑通过IP访问自己电脑上的网站

1.步骤:设置-->控制面板-->Windows Defender 防火墙-->高级设置 2.修改域配置文件 入站链接”改为”允许“选项。 3.修改专用配置文件 入站链接”改为”允许“选项。 4. 大功告成了!!! 设置完可以看到,下图…

消费企业经营管理的两大痛点!一篇文章讲透解决办法!

在当下这个快速变化的消费市场中,企业面临着前所未有的挑战和机遇。消费企业,尤其是那些直接面向消费者的零售商,需要不断地适应市场动态,以保持竞争力。然而,在这个过程中,它们往往会遇到一些普遍的痛点&a…

高通DSP、HVX、HMX

CDSP Compute Digital Signal Processor cDSP主要用途有: 1、摄像头、视频的图像增强相关处理 2、计算机视觉、增强、虚拟现实处理 3、深度学习硬件加速 HVX Hexagon Vector Extension HVX意味着你可以将视频和摄像机任务从CPU转移到Hexagon DSP&#xff…

Linux LD_PRELOAD优先加载so失效原因分析

网上由很多介绍LD_PRELOAD劫持的文章,我就不做过多介绍,之前有碰到失效的,网上找了很久没找到原因,后面分析出原因,现在写出来给后人避坑。 Linux系统使用LD_PRELOAD环境变量可以让程序优先加载指定的so文件&#xff0…

ES6 (一)——ES6 简介及环境搭建

目录 简介 环境搭建 可以在 Node.js 环境中运行 ES6 webpack 入口 (entry) loader 插件 (plugins) 利用 webpack 搭建应用 gulp 如何使用? 简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版…

探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径

在 Kubernetes 生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要。对于选择自主搭建 Kubernetes 集群的运维架构师来说,挑选合适的后端持久化存储解决方案是关键的选型决策。目前,Ceph、Glus…