普元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 這些字段會自動賦值,如何做到的?

這些問題以后我再說明吧。

這篇文章就到這里吧。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/39039.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39039.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39039.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Golang中swtich中如何強制執行下一個代碼塊

switch 語句中的 case 代碼塊會默認帶上 break,但可以使用 fallthrough 來強制執行下一個 case 代碼塊。 package mainimport ("fmt" )func main() {isSpace : func(char byte) bool {switch char {case : // 空格符會直接 break,返回 false…

2024年6月 | deepin 深度應用商店-應用更新記錄

新增應用 序號應用名稱depein 系統版本應用分類應用類型1bkViewer 照片瀏覽器deepin 20.9 deepin V23網絡應用wine291助手deepin 20.9 deepin V23編程開發wine3風云CAD轉換器deepin 20.9 deepin V23編程開發wine4Disk Savvydeepin 20.9 deepin V23系統工具wine5飛貓盤…

miniconda3 安裝jupyter notebook并配置網絡訪問

由于服務器安裝的miniconda3,無jupyter notebook,所以手工安裝jupyter notebook 1 先conda 安裝相關包 在base 環境下 conda install ipython conda install jupyter notebook 2 生成配置文件 jupyter notebook --generate-config Writing defaul…

Nginx 常用配置與應用

Nginx 常用配置與應用 官網地址:https://nginx.org/en/docs/ 目錄 Nginx 常用配置與應用 Nginx總架構 正向代理 反向代理 Nginx 基本配置反向代理案例 負載均衡 Nginx總架構 進程模型 正向代理 反向代理 Nginx 基本配置反向代理案例 負載均衡 Nginx 基本配置…

新人程序員接手丑陋的老代碼怎么辦?改還是不改......

許多小伙伴在初入職場的時候,都會遇到要接手老代碼的情況,那么問題來了,如果老代碼十分丑陋,你是改還是不改? 不改吧,心里難受;改吧,指不定會遇到什么情況,比如…… 1.…

【嫦娥四號】月球著陸器中子和劑量測量(LND)實驗

一、引言 嫦娥四號任務是中國月球探測計劃的重要里程碑,實現了人類首次在月球背面軟著陸,并展開了月面巡視和中繼通信。本文所描述的嫦娥四號著陸器上的中子與劑量測定實驗(Lunar Lander Neutrons and Dosimetry Experiment, LND&#xff09…

【雷豐陽-谷粒商城 】【分布式高級篇-微服務架構篇】【17】認證服務01

持續學習&持續更新中… 守破離 【雷豐陽-谷粒商城 】【分布式高級篇-微服務架構篇】【17】認證服務01 環境搭建驗證碼倒計時短信服務郵件服務驗證碼短信形式:郵件形式: 異常機制MD5參考 環境搭建 C:\Windows\System32\drivers\etc\hosts 192.168.…

嵌入式PCB制圖面試題及參考答案(2萬字長文)

目錄 如何設計適用于RF(射頻)應用的PCB? 介紹柔性PCB設計的基本考慮因素。 在高電壓PCB設計中,如何確保安全距離? 何為埋盲孔技術?在哪些應用中會用到? PCB設計項目管理的關鍵要素有哪些? 如何有效地與硬件工程師、機械工程師協同工作? 介紹一種提高設計審查效…

JAVA每日作業day7.1-7.3小總結

ok了家人們前幾天學了一些知識,接下來一起看看吧 一.API Java 的 API ( API: Application( 應用 ) Programming( 程序 ) Interface(接口 ) ) Java API 就是 JDK 中提供給我們使用的類,這些類將底層 的代碼實現封裝了起來&#x…

編寫高效的Java工具類:實用技巧與設計模式

編寫高效的Java工具類:實用技巧與設計模式 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 1. 工具類的定義與作用 在軟件開發中,工具…

【echarts】拖拽滑塊dataZoom-slider自定義樣式,簡單適配移動端

電腦端 移動端 代碼片段 dataZoom: [{type: inside,start: 0,end: 100},{type: slider,backgroundColor: #F2F5F9,fillerColor: #BFCCE3,height: 13, // 設置slider的高度為15start: 0,end: 100,right: 60,left: 60,bottom: 15,handleIcon:path://M30.9,53.2C16.8,53.2,5.3,41.…

Linux源碼閱讀筆記12-RCU案例分析

在之前的文章中我們已經了解了RCU機制的原理和Linux的內核源碼,這里我們要根據RCU機制寫一個demo來展示他應該如何使用。 RCU機制的原理 RCU(全稱為Read-Copy-Update),它記錄所有指向共享數據的指針的使用者,當要修改構想數據時&…

不要把面子太當回事

新手拍短視頻真人出鏡,會覺得拍視頻不自然怎么辦?感覺自己好傻。 其實不要把面子太當回事,堅持不把面子太當回事,反正剛開始也沒人看。這是真的事實,大家都非常忙,在你身上停留的時間就幾秒鐘。不要在腦海…

postgreSQL入門

PostgreSQL 教程 約束條件 not null, 不能為空 unique, 在所有數據中必須唯一 check, 字段設置條件 default, 字段默認值 primary(not null, unique), 主鍵, 不能為空且不能重復 數據庫操作 create database [name]; // 建立數據庫 drop database [name]; // 刪除數據庫 \c …

如何快速使用C語言操作sqlite3

itopen組織1、提供OpenHarmony優雅實用的小工具2、手把手適配riscv qemu linux的三方庫移植3、未來計劃riscv qemu ohos的三方庫移植 小程序開發4、一切擁抱開源,擁抱國產化 一、sqlite3庫介紹 sqlite3庫可從官網下載,當前版本為sqlite3 3.45.3ht…

systemctl命令使用

systemctl 作用:可以控制軟件(服務)的啟動、關閉、開機自啟動 系統內置服務均可被systemctl控制第三方軟件,如果自動注冊了可以被systemctl控制第三方軟件,如果沒有自動注冊,可以手動注冊 語法 systemct…

#### golang的append到底干了啥 ####

代碼1.0 package mainimport "fmt"func main() {a : make([]int64, 0, 0) // 改為 a : make([]int64, 0, 2) 時執行輸出也都一樣的println(fmt.Sprintf("a: %v", a))// 輸出:a: []solve(a)println(fmt.Sprintf("a: %v", a))// 輸出&…

企業出海如何應對國際差旅報銷的復雜性?

在全球化浪潮的推動下,越來越多的中國企業開始邁向國際市場。然而,企業在“走出去”的過程中不僅面臨新的商機,也需要克服諸多挑戰。尤其是國際差旅報銷的復雜性,成為出海企業必須解決的重要問題。 國際差旅報銷的四大挑戰 多元…

【分布式數據倉庫Hive】常見問題及解決辦法

目錄 一、啟動hive時發現log4j版本和hadoop的版本有沖突 解決辦法:刪除hive下高版本的slf4j 二、啟動hive報錯 Exception in thread "main" java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/Object;)V …

postgres數據庫的流復制

1. 流復制和邏輯復制的差異 邏輯復制和流復制最直觀的不同是,邏輯復制支持表級別復制區分點事原理不同 邏輯日志是在wal日志產生的數據庫上,由邏輯解析模塊對wal日志進行初步的解析,解析結果是ReorderBufferChange(理解為HeapTup…