创建springboot项目
、编辑
编辑
编辑
启动后浏览器访问:localhost:8080/hello
postman
在my workspace 添加
编辑
填写url后发送请求
请求响应
简单参数和实体参数
在ide中
编辑
创建类的包与controller同级,导包:
编辑
在Java类中写getset函数,重写tostring函数
编辑
在RequestController写:
//springboot方式
@RequestMapping("/simpleParam")
public String simpleParam(String name, Integer age) {
System.out.println(name + " " + age);
return "OK";
}
//实体参数
@RequestMapping("/simplePojo")
public String simpleParam2(User user) {
System.out.println(user);
return "OK";
}
//实体参数
@RequestMapping("/complexPojo")
public String complexPojo(User user) {
System.out.println(user);
return "OK";
}
数组集合参数
传递不定个数数据的时候:
编辑
//数组参数
@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby) {
System.out.println(hobby);
return "OK";
}
日期参数
编辑
//时间参数
@RequestMapping("/dateParam")
public String dataParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime) {
System.out.println(updateTime);
return "OK";
}
josn参数
编辑
//json参数
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user) {
System.out.println(user);
return "OK";
}
路径参数
编辑
//路径参数
@RequestMapping("/path/{id}")
public String path(@PathVariable Integer id) {
System.out.println(id);
return "OK";
}
@RequestMapping("/path/{id}/{name}")
public String path(@PathVariable Integer id, @PathVariable String name) {
System.out.println(id + " " + name);
return "OK";
}
返回json格式及统一响应结果封装
package com.zizisuo.pojo;
public class Result {
// 操作代码
private Integer code;
// 提示信息
private String meg;
// 结果数据
private Object data;
public Result() {
}
public Result(Integer code, String msg, Object data) {
this.code =code;
this.meg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMeg() {
return meg;
}
public void setMeg(String meg) {
this.meg = meg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
//成功返回封装-无数据
public static Result success(Object data) {
return new Result(1,"success",data);
}
//成功返回封装-带数据
public static Result success() {
return new Result(1,"success",null);
}
//失败返回封装-使用默认提示信息
public static Result error(String msg) {
return new Result(0,msg,null);
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", meg='" + meg + ''' +
", data=" + data +
'}';
}
}
编辑
编辑
编辑
分层解耦
MySQL
准备工作
MySQL :: Download MySQL Community Server
选择版本安装
添加环境变量:编辑
编辑
管理员身份运行cmd打mysql,出现error就是成功了:
编辑
初始化mysql:
cmd打mysqld --initialize-insecure然后发现多了一个data文件夹
编辑
注册mysql服务:
cmd打mysqld -install即可
编辑
然后就能在“服务”中找到:
编辑
启动/关闭mysql:
编辑
修改默认账密:
编辑
编辑
登录/退出mysql
编辑
编辑
退出:
编辑
数据库设计--DDL语句
数据库
创建数据库 create database name01;
展示所有数据库 show databases;
使用指定数据库 use name01;
查看当前使用的是哪个数据库:select database();
编辑
删除指定数据库: drop database name03;
表结构
创建表结构:
create table 表名(
字段1 字段类型 [约束] [comment 字段1注释],
字段2 字段类型 [约束] [comment 字段2注释],
字段3 字段类型 [约束] [comment 字段3注释]
)[comment 表注释];
create table table01 (
id int comment 'ID,唯一标识',
username varchar(20) comment '用户名',
name varchar(10) comment '姓名',
age int comment '年龄',
gender char(1) comment '性别'
) comment '用户表';
约束:
编辑
SQL数据结构:
编辑
编辑
编辑
查询表结构:
查看当前库下的表:show tables;
查看指定表结构:desc table01;
查看数据库的建表语句:show create table table01;ctrl+b
修改表结构:
编辑
删除表结构
drop table table01;
添加修改删除数据
添加:
编辑
insert into table01(username, name, age) values ('zizisuo','ZPS',1);
insert into table01(username, name, age,table01.newtime) values ('zizisuo3','ZPS2',12,now());
insert into table01(id, username, name, age, gender,newtime) VALUES (null,'ppp11','ddd11',88,1,now()) ,(null,'ppp2','ddd2',88,1,now());
修改:
编辑
update table01 set name='zizisuo4',newtime=now() where id=5;
update table01 set newtime=now();
删除:
编辑
delete from table01 where id =1;
delete from table01;
数据库操作--DQL
编辑
基本查询
编辑
select name,entrydate from tb_emp;
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;
select * from tb_emp; -- 不推荐,性能低
select name 姓名,entrydate 入职日期 from tb_emp;
-- 查询已有的员工关联了哪几种职位
select distinct job from tb_emp;
条件查询
编辑
select * from tb_emp where name= '杨逍';
select * from tb_emp where id <=5;
select * from tb_emp where job is null; -- 不能用 = 用is 和is not
select * from tb_emp where password !='123456';
select * from tb_emp where entrydate>='2000-1-1' and entrydate<='2010-1-1';
select * from tb_emp where entrydate between '2000-1-1' and '2010-1-1';
select * from tb_emp where entrydate between '2000-1-1' and '2010-1-1' and gender=2;
select * from tb_emp where job=2 or job=3 or job=4;
select * from tb_emp where job in (2,3,4);
select * from tb_emp where name like '__'; -- 名字两个字的
select * from tb_emp where name like '张%';
分组查询
编辑
编辑
-- 不对null进行计算
-- 数据总量
select count(*) from tb_emp;
select min(entrydate) from tb_emp;
select max(entrydate) from tb_emp;
select avg(id) from tb_emp;
select sum(id) from tb_emp;
select gender, count(*) from tb_emp group by gender;
select job,count(*) from tb_emp group by job ;
排列查询
编辑
select * from tb_emp order by entrydate asc; -- asc升序(默认)
select * from tb_emp order by entrydate desc; -- desc降序
select * from tb_emp order by entrydate ,update_time desc; -- 按照入职时间升序,相同时按照更新时间降序
分页查询
编辑
select * from tb_emp limit 5,5;
select * from tb_emp limit (页码--1)*展示数,展示数;
多表设计
多表查询
select * from tb_emp,tb_dept where tb_emp.dept_id=tb_dept.id;
内连接
编辑
select tb_emp.name,tb_dept.name from tb_dept,tb_emp where tb_dept.id=tb_emp.dept_id;
select tb_emp.name,tb_dept.name from tb_dept inner join tb_emp on tb_dept.id = tb_dept.id;
外连接
编辑
select tb_emp.name,tb_dept.name from tb_emp left join tb_dept on tb_dept.id = tb_emp.dept_id;
select tb_emp.name,tb_dept.name from tb_emp right join tb_dept on tb_dept.id = tb_emp.dept_id;
子查询
列子查询
select * from tb_emp where dept_id=(select id from tb_dept where name='教研部');
select * from tb_emp where tb_emp.entrydate>(select entrydate from tb_emp where name='方东白');
select * from tb_emp where dept_id in (select id from tb_dept where tb_dept.name='教研部' or tb_dept.name='咨询部');
行子查询
select * from tb_emp where (entrydate,job)=(select entrydate,job from tb_emp where name='韦一笑');
表子查询
select * from (select * from tb_emp where entrydate > '2006-01-01') e,tb_dept d where e.dept_id=d.id;
事务
编辑
四大特性:原子性 一致性 隔离性 持久性
索引
编辑
数据库管理工具 DataGrip(idea内置)
在idea添加扩展-----file --settings--plugins--下载Database Navigator(魔法)----view--tool windows--database-----新建--data source新建MySQL
图形化界面添加数据并保存
编辑