若依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,一经查实,立即删除!

相关文章

linux usb 驱动之urb

linux 内核中的 USB 代码和所有的 USB 设备通讯使用称为 urb 的东西( USB request block). 这个请求块用 struct urb 结构描述并且可在 include/linux/usb.h 中找到. 一个 urb 用来发送或接受数据到或者从一个特定 USB 设备上的特定的 USB 端点, 以一 种异步的方式. 它用起来非…

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

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

04MyBatis核心配置文件

mybatis-config.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><enviro…

服务发现Discovery

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

【深入学习Java虚拟机】

1.类的加载&#xff0c;连接&#xff08;验证、准备、解析&#xff09;与初始化。 类的加载指的是将类的 .class 文件中的耳机子数据读入到内存中&#xff0c;将其放在运行时数据去的方法区内&#xff0c;然后再兑取创建一个java.lang.Class 对象&#xff0c;用来封装类在方法…

K8S API访问控制之RBAC利用

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

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

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 final&#xff1a; finally&#xff1a; finalize&#xff1a; 结语 我的其他博客 前言 在Java中&#xff0c;final、f…

【网络工程师】三层交换机与HSRP

一、三层交换机 1、三层交换机 三层路由器 二层交换机 2、三层路由引擎是可以关闭或开启的 conf t ip routing 开启三层路由功能 no ip routing 关闭 3、三层交换机的优点 与单臂路由相比&#xff1a; 1&#xff09;解决了网络瓶颈的问题 2&#xff09;解决了单点故障&a…

使用flet创建todo应用

使用 Flet 在 Python 中创建待办事项应用 Create To-Do app in Python with Flet 翻译官网教程https://flet.dev/docs/tutorials/python-todo&#xff0c;对一些地方进行了注释和修改。 安装flet Python版本需要3.8及以上&#xff0c;使用pip安装&#xff1a; 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-模糊测试&#xff08;Fuzz Testing&#xff09; test fuzz-…

【MySQL】MySQL事务基础概述与隔离级别

MySQL事务基础概述与隔离级别 在数据库管理系统中&#xff0c;事务是一组原子性的操作&#xff0c;要么全部执行成功&#xff0c;要么全部失败。MySQL事务的四个基本特性&#xff0c;即ACID&#xff08;原子性、一致性、隔离性、持久性&#xff09;&#xff0c;对于数据的可靠…

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

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

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

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

模型创建与nn.Module

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

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

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;同向双指针————“滑动窗口” 思路&#xff1a;如下图&#xff0c;当right进窗口后&#xff0c;就出现了a重复&#xff0c;所以在left出窗口时时&#xff0c;需要跳到第一个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}}}…

C语言-蓝桥杯算法提高VIP-产生数

题目描述 给出一个整数 n 和 k 个变换规则。 规则&#xff1a; 一位数可变换成另一个一位数&#xff1a; 规则的右部不能为零。 例如&#xff1a;n234。有规则&#xff08;k&#xff1d;2&#xff09;&#xff1a; 2&#xff0d;> 5 3&#xff0d;> 6 上面的整数…

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

1、执行命令 ssh-keygen -t rsa&#xff0c;一直敲回车 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&…

nohup - 后台执行

nohup : no hang up 语法 nohup Command [ Arg … ] [ & ]使用示例 nohup python a.py &日志将被保留在 当前文件夹下的 nohup.out 将日志放到文件&#xff0c;不输出到终端 echo hello > 1.txt在后台执行&#xff0c;并输出日志到 log1.txt 文件 nohup pytho…