SpringBoot案例(二)
SpringBootWeb案例前面我们已经实现了员工信息的条件分页查询以及删除操作。 关于员工管理的功能,还有两个需要实现:
新增员工
修改员工
首先我们先完成”新增员工”的功能开发,再完成”修改员工”的功能开发。而在”新增员工”中,需要添加头像,而头像需要用到”文件上传”技术。 当整个员工管理功能全部开发完成之后,我们再通过配置文件来优化一些内容。
综上所述,我们今天的课程内容包含以下四个部分:
新增员工
文件上传
修改员工
配置文件
1. 新增员工1.1 需求
在新增用户时,我们需要保存用户的基本信息,并且还需要上传的员工的图片,目前我们先完成第一步操作,保存用户的基本信息。
1.2 接口文档我们参照接口文档来开发新增员工功能
基本信息
请求路径:/emps
请求方式:POST
接口描述:该接口用于添加员工的信息
请求参数
参数格式:application/json
参数说明:
名称
类型
是否必须
备注
username
string
必须
用户名
name
string
必须
姓名
gender
number
必须
...
SpringBoot案例(一)
SpringBootWeb案例前面我们已经讲解了Web前端开发的基础知识,也讲解了Web后端开发的基础(HTTP协议、请求响应),并且也讲解了数据库MySQL,以及通过Mybatis框架如何来完成数据库的基本操作。 那接下来,我们就通过一个案例,来将前端开发、后端开发、数据库整合起来。 而这个案例呢,就是我们前面提到的Tlias智能学习辅助系统。
在这个案例中,前端开发人员已经将前端工程开发完毕了。 我们需要做的,就是参考接口文档完成后端功能的开发,然后结合前端工程进行联调测试即可。
完成后的成品效果展示:
今天的主要内容如下:
准备工作
部门管理
员工管理
下面我们就进入到今天的第1个内容准备工作的学习。
1. 准备工作准备工作的学习,我们先从”需求”和”环境搭建”开始入手。
1.1 需求&环境搭建1.1.1 需求说明1、部门管理
部门管理功能开发包括:
查询部门列表
删除部门
新增部门
修改部门
2、员工管理
员工管理功能开发包括:
查询员工列表(分页、条件)
删除员工
新增员工
修改员工
1.1.2 环境搭建
步骤:
准备数据库表(dept、em ...
Mybatis-2
1.Mybatis基础操作1.1 需求需求说明:
根据资料中提供的《智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。
通过分析以上的页面原型和需求,我们确定了功能列表:
查询
根据主键ID查询
条件查询
新增
更新
删除
根据主键ID删除
根据主键ID批量删除
1.2 准备
准备数据库表 emp
-- 部门管理
create table dept
(
id int unsigned primary key auto_increment comment '主键ID',
name varchar(10) not null unique comment '部门名称',
create_time datetime not null comment '创建时间',
update_time datetime not null comment '修改时间'
) comment '部门表';
-- 部门表测 ...
Mybatis-1
Mybatis入门前言在前面我们学习MySQL数据库时,都是利用图形化客户端工具(如:idea、datagrip),来操作数据库的。
在客户端工具中,编写增删改查的SQL语句,发给MySQL数据库管理系统,由数据库管理系统执行SQL语句并返回执行结果。
增删改操作:返回受影响行数
查询操作:返回结果集(查询的结果)
我们做为后端程序开发人员,通常会使用Java程序来完成对数据库的操作。Java程序操作数据库,现在主流的方式是:Mybatis。
什么是MyBatis?
MyBatis是一款优秀的 持久层 框架,用于简化JDBC的开发。
MyBatis本是 Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
官网:https://mybatis.org/mybatis-3/zh/index.html
在上面我们提到了两个词:一个是持久层,另一个是框架。
持久层:指的是就是数据访问层(dao),是用来操作数据库的。
框架:是一个半成品软件,是一套可重用 ...
mysql学习笔记(二)
数据库开发-MySQL1. 多表查询1.1 概述1.1.1 数据准备SQL脚本:
#建议:创建新的数据库
create database db04;
use db04;
-- 部门表
create table tb_dept
(
id int unsigned primary key auto_increment comment '主键ID',
name varchar(10) not null unique comment '部门名称',
create_time datetime not null comment '创建时间',
update_time datetime not null comment '修改时间'
) comment '部门表';
-- 部门表测试
insert into tb_dept (id, name, create_time, update_time)
values (1, '学工部' ...
mysql学习笔记
mysql1. Mysql的安装和下载一、下载点开下面的链接:https://dev.mysql.com/downloads/mysql/
点击Download 就可以下载对应的安装包了, 安装包如下:
二、解压下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 8.0.31 的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置 。
三、配置1. 添加环境变量
环境变量里面有很多选项,这里我们只用到Path这个参数。为什么在初始化的开始要添加环境变量呢?
在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。
右键此电脑→属性,点击高级系统设置
点击环境变量
在系统变量中新建MYSQL_HOME
在系统变量中找到并双击Path
点击新建
最后点击确定。
如何验证是否添加成功?
右键开始菜 ...
我的世界MCSM面板搭建
我的世界MCSM面板搭建Linux如果你并不想去学习如何自己搭建,可以使用源作者的安装指令(我的脚本没必要了)
Linux 系统快速安装(适用于 Ubuntu/Centos/Debian/Arch) 安装成功后,使用 systemctl start mcsm-{(web, daemon)} 命令即可启动面板 wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup.sh | bash
1
前期需要软件
远程SSH控制台软件(本教程使用 Remote Terminal 此为win10商店软件)[点我下载(此软件为Xshell)] (opens new window)
支持Sftp的FTP软件(本教程使用 FileZilla)[点我下载] (opens new window)
服务端(本教程使用 Spigot)
Centos或Ubuntu主机一台 (教程使用 centos7.9)
注意事项
极力推荐Centos系统,Ubuntu系统未经博主测试
未标注哪个系统指令则两者都可适用
若标题注释了 ...
javaseBaseUp总结
day01面向对象高级-继承学习目标1、能够写出类的继承格式
2、能够说出继承的特点
3、能够说出子类调用父类的成员特点
4、能够说出方法重写的概念
5、能够说出this可以解决的问题
6、能够说出super可以解决的问题
7、能够掌握static关键字修饰的变量调用方式
8、能够掌握static关键字修饰的方法调用方式
一、static1.static修饰成员变量概念:静态,常用于修饰变量和方法。
成员变量的分类
类变量,有static修饰的成员位置变量
实例变量,无static修饰的成员位置变量
成员变量内存原理
静态变量存在于方法区
实例变量存在于对象内存中
2.static修饰成员变量的应用场景当类中存在需要被共享的数据,该变量可以定义为静态
需求示例:在User类中定义个表示已创建用户数量。
3.static修饰成员方法成员方法分类:
类方法:有static修饰的成员位置方法
实例方法:无static修饰的成员位置方法
成员方法执行原理
静态方法可以通过类名(推荐)或对象名调用后,加载到栈内存执行。
小知识:main方法是被我们定义后,由jvm ...
day14-单元测试-反射-注解-动态代理
day14-单元测试、反射恭喜同学们,Java主要的知识我们其实已经学习得差不多了。今天同学们再把单元测试、反射、注解、动态代理学习完。Java的基础知识就算全齐活了。
首先,我们进入单元测试的学习。
一、单元测试1.1 单元测试快速入门所谓单元测试,就是针对最小的功能单元,编写测试代码对其进行正确性测试。
我们想想,咱们之前是怎么进行测试的呢?
比如说我们写了一个学生管理系统,有添加学生、修改学生、删除学生、查询学生等这些功能。要对这些功能这几个功能进行测试,我们是在main方法中编写代码来测试的。
但是在main方法中写测试代码有如下的几个问题,如下图所示:
为了测试更加方便,有一些第三方的公司或者组织提供了很好用的测试框架,给开发者使用。这里给同学们介绍一种Junit测试框架。
Junit是第三方公司开源出来的,用于对代码进行单元测试的工具(IDEA已经集成了junit框架)。相比于在main方法中测试有如下几个优点。
我们知道单元测试是什么之后,接下来带领同学们使用一下。由于Junit是第三方提供的,所以我们需要把jar包导入到我们的项目中,才能使用,具体步骤如下图所示: ...
day13-网络编程
day13-网络编程一、网络编程概述同学们,今天我们学习的课程内容叫网络编程。意思就是编写的应用程序可以与网络上其他设备中的应用程序进行数据交互。
网络编程有什么用呢?这个就不言而喻了,比如我们经常用的微信收发消息就需要用到网络通信的技术、在比如我们打开浏览器可以浏览各种网络、视频等也需要用到网络编程的技术。
我们知道什么是网络编程、也知道网络编程能干什么后了,那Java给我们提供了哪些网络编程的解决方案呢?
Java提供的网络编程的解决方案都是在java.net包下。在正式学习Java网络编程技术之前,我们还需要学习一些网络通信的前置知识理论知识,只有这些前置知识做基础,我们学习网络编程代码编写才起来才能继续下去。
首先和同学们聊聊网络通信的基本架构。通信的基本架构主要有两种形式:一种是CS架构(Client 客户端/Server服务端)、一种是BS架构(Brower 浏览器/Server服务端)。
CS架构的特点:CS架构需要用户在自己的电脑或者手机上安装客户端软件,然后由客户端软件通过网络连接服务器程序,由服务器把数据发给客户端,客户端就可以在页面上看到各种 ...