若依CRUD搬砖开始,Java小白入门(十)

背景

  • 经过囫囵吞枣的学习若依框架,对于ruoyi-framework,common,安全,代码生成等模块都看了一圈,剩余的调度模块,这个暂时不深入,剩余的是ruoyi-system,就是用mybatis完成的,接口以及接口的服务实现,ruoyi-admin是controller接口,前端来调用;再就是ruiyi-ui vue2.6版本的。小白入门(-)to(九) 相关的,自行查阅。

动手构建机构管理

数据库设计

CREATE TABLE Orgs  (
Id varchar(245) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '主键ID',
ParentId varchar(245) CHARACTER SET utf8 COLLATE utf8_bin  NULL COMMENT '上级机构',
Type varchar(245) CHARACTER SET utf8 COLLATE utf8_bin   NULL COMMENT '机构类型',
Name varchar(245) CHARACTER SET utf8 COLLATE utf8_bin  NULL COMMENT '机构名称',
Code varchar(245) CHARACTER SET utf8 COLLATE utf8_bin   NULL COMMENT '机构代码',
Leader varchar(245) CHARACTER SET utf8 COLLATE utf8_bin   NULL COMMENT '机构领导',
PhonNumber varchar(245) CHARACTER SET utf8 COLLATE utf8_bin   NULL COMMENT '机构电话',
IsLegalPerson char(1) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '0' COMMENT '是否法人机构(0否 1是)',
Picture  varchar(245) CHARACTER SET utf8 COLLATE utf8_bin   NULL COMMENT '机构图片地址',
del_flag char(1) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
create_by varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '创建者',
create_time datetime NULL DEFAULT NULL COMMENT '创建时间',
update_by varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '更新者',
update_time datetime NULL DEFAULT NULL COMMENT '更新时间',
remark varchar(500) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '备注',
PRIMARY KEY (Id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '用户信息表' ROW_FORMAT = Compact;SET FOREIGN_KEY_CHECKS = 1;

需要注意,这里有不少坑,用的mysql数据库

Id 不是自增的

数据库的字段命名是Pascal格式

如果是tree表,或者主子表,注意看文档

生成代码

  • 创建数据库以后,把选择数据表导入,然后编辑字段的一些属性,生成代码zip包。

运行sql

-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('机构信息', '3', '1', 'orgs', 'system/orgs/index', 1, 0, 'C', '0', '0', 'system:orgs:list', '#', 'admin', sysdate(), '', null, '机构信息菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values('机构信息查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'system:orgs:query',        '#', 'admin', sysdate(), '', null, '');
  • 生成对应的菜单,以及页面上的按钮。

Copy文件到对应目录

  • 这个操作基本上都是比较顺畅,把对应的java文件,js文件,等等copy对应目录,编译不会有错。

运行

  • 运行后台程序,运行前端程序,一切可以,以下是遇到的一些问题:

  1. 新增有问题,如果id不是自增,int型的,比如
@Override
public int insertOrgs(Orgs orgs)
{orgs.setCreateTime(DateUtils.getNowDate());orgs.setType("内部机构");orgs.setId(new GUID().toString());return orgsMapper.insertOrgs(orgs);
}
  1. 另外大坑就是 数据库的命名,是驼峰命名,引发一系列的问题,比如restful 返回的都是驼峰,可是前端直接显示是数据库真实命名(或者若依代码加个处理)等等吧。当然,可能是没有认真读文档的原因,所以砍柴不误磨刀功。
  2. 这个时候如果各类异常,去看若依的输出,以及全局异常处理,不行直接跟踪代码。
  3. 把生成的前端代码copy到若依vue3下是不work的。

总结

总体来讲,磕磕碰碰的完成一些功能,不会有太大的问题,java小白就能基本来做一些体力活了。下一步,还需要深入一些常用的类库,以及稍微高级的用法。这个小白系列,暂时告一段落,大约历时2周时间,真正用上2-3天的时间是有的,所以大部分人员一周掌握基本的内容不会有问题的。

若依框架跑起来,Java小白入门(一)

SpringBoot不求甚解,Java小白入门(二)

注解的理解、使用、原理,Java小白入门(三)

若依common模块解读,Java小白入门(四)

切面编程的理解和使用,Java小白入门(五)

若依framework模块解读,Java小白入门(六)

若依generator模块解读,Java小白入门(七)

常见安全概念澄清,Java小白入门(八)

Spring Security及若依安全实现,Java小白入门(九)

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

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

相关文章

063:vue中一维数组与三维数组联动,类似购物车增减

第063个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeM…

服务发现Discovery

对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息 1、 修改cloud-provider-payment8001的controller import com.my.springcloud.utils.RestResponse; import com.my.springcloud.entities.Payment; import com.my.springcloud.service.PaymentSe…

K8S API访问控制之RBAC利用

前言 K8S对于API的访问安全提供了访问控制,主要为4个阶段,本文为第二个阶段——鉴权的RBAC。RBAC是基于角色的访问控制,使用kubeadm安装集群1.6版本以上的都默认开启了RBAC。本文主要研究集群可能存在的利用点及相对应的利用手法。 API访问…

【JAVA】final、finally、finalize 有什么区别?

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 final: finally: finalize: 结语 我的其他博客 前言 在Java中,final、f…

使用flet创建todo应用

使用 Flet 在 Python 中创建待办事项应用 Create To-Do app in Python with Flet 翻译官网教程https://flet.dev/docs/tutorials/python-todo,对一些地方进行了注释和修改。 安装flet Python版本需要3.8及以上,使用pip安装: pip install…

test fuzz-01-模糊测试(Fuzz Testing)入门 Atheris、Jazzer、jqf、kelinci、FLA、libfuzzer 对比

拓展阅读 开源 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) 开源 Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) test fuzz-01-模糊测试(Fuzz Testing) test fuzz-…

代码随想录算法训练营day6|242.有效的字母异位词、349.两个数组的交集、202.快乐数

哈希表理论基础 建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时…

Unity Urp 渲染管线 创建透明材质球

按照以上方式设置后就可以得到一个透明的材质球 Tips:Blending mode : alpha 和 Blending mode : additive都是完全透明效果具体差异暂时不知道

模型创建与nn.Module

一、网络模型创建步骤 二、nn.Module 下面描述了在 PyTorch 中常见的一些属性和功能,用于存储和管理神经网络模型的参数、模块、缓冲属性和钩子函数。 parameters:用于存储和管理 nn.Parameter 类的属性。nn.Parameter 是一种特殊的张量,它被…

在做题中学习(44):无重复字符的最长字串

3. 无重复字符的最长子串 - 力扣(LeetCode) 解法:同向双指针————“滑动窗口” 思路:如下图,当right进窗口后,就出现了a重复,所以在left出窗口时时,需要跳到第一个a 后面的位置&…

【QML COOK】- 004-添加动画

1. 编辑main.qml import QtQuickWindow {width: 800height: 800visible: truetitle: qsTr("Hello World")Image {id: backgroudanchors.fill: parentsource: "qrc:/Resources/Images/arrow.png"Behavior on rotation {NumberAnimation {duration: 1000}}}…

Master01节点免密钥登录其他节点

1、执行命令 ssh-keygen -t rsa,一直敲回车 2、for i in k8s-master01 k8s-node01 k8s-node02;do ssh-copy-id -i .ssh/id_rsa.pub $i;done 输入yes和对应节点密码

【CSS】首个字符占用多行,并自定义样式

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>首字母大写</title><style&…

【QT】计算器-模拟实现

目录 准本工作 槽函数实现 数字按键槽函数 退格槽函数 运算符 按键 槽函数 等号槽函数 初始化及计算器页面布局 整体代码 widget.h widget.cpp 准本工作 工程创建&#xff1a; 计算器模拟实现需求分析&#xff1a; 样式预览&#xff1a; &#x1f3a0;主要功能&…

uni-app如何生成骨架屏

骨架屏是页面的一个空白版本&#xff0c;通常会在页面完全渲染之前&#xff0c;通过一些灰色的区块大致勾勒出轮廓&#xff0c;待数据加载完成后&#xff0c;再替换成真实的内容。 参考效果 骨架屏作用是缓解用户等待时的焦虑情绪&#xff0c;属于用户体验优化方案。 生成骨…

视频剪辑方法:智能转码从视频到图片序列,高效转换攻略

在视频编辑和后期处理中&#xff0c;经常要将视频转换为图片序列&#xff0c;以便进行单独编辑或应用。下面一起来看云炫AI智剪如何批量智能转码的方法&#xff0c;高效地将视频转换为图片序列。 视频转为序列图片缩略图效果 视频转为序列图片的效果图&#xff0c;画面清晰&a…

基于WIFI指纹的室内定位算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1WIFI指纹定位原理 4.2 指纹数据库建立 4.3定位 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .....................................…

【SpringCloud Alibaba笔记】(4)Seata处理分布式事务

Seata 分布式事务问题 单机单库没这个问题&#xff0c;分布式之前从1: 1 -> 1:N ->N:N 分布式之后 单体应用被拆分成微服务应用&#xff0c;原来的三个模块被拆分成三个独立的应用分别使用三个独立的数据源&#xff0c;业务操作需要调用三个服务来完成。 此时每个服务…

网络调试 UDP1,开发板用动态地址-入门6

https://www.bilibili.com/video/BV1zx411d7eC?p11&vd_source109fb20ee1f39e5212cd7a443a0286c5 1, 开发板连接路由器 1.1&#xff0c;烧录无OS UDP例程 1.2&#xff0c;Mini USB连接电脑 1.3&#xff0c;开发板LAN接口连接路由器 2. Ping开发板与电脑之间通信* 2.1 根据…

浅谈归并排序:合并 K 个升序链表的归并解法

在面试中遇到了这道题&#xff1a;如何实现多个升序链表的合并。这是 LeetCode 上的一道原题&#xff0c;题目具体如下&#xff1a; 用归并实现合并 K 个升序链表 LeetCode 23. 合并K个升序链表 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到…