密码加密
字符串 左到右很快 逆方向求不出来
p1->x1;p1->x1;比较x1;
每次编码都不一样 可能包括了一个随机字符串
存密码只存后边的东西x1 会安全一些
所以密码只能重置 不能还原
encode可以加密
mathes判断明文和密文是否匹配
mathes(rawpassword:原码,编码后)
idea使用
test
类用来测试 注意点击旁边的运行符号class 而不是上方的主运行符号
运行过之后使用上方(注意在运行的进程后再可以点击上方的)
alt
+insert
查看接口所有方法
重载写上方便自己知道是不是重写的
指明密码没有被加密只是用来调试 在password前加上{noop}
{noop}指示数据库这是明文 就不需要password Encoder
idea默认保存上一次运行的程序 重新运行需要找到入口重新运行
用数据库一定加上@Autowired
原则上能用private就用private
sp-security
加上授权机制
shiro和springsecity相对会更容易上手功能会少一些
session和cookie一般来说是绑定一块的
user 密码在控制台输出 每次运行都是
登录一次之后 不用再登录了会将sessionid存到cookie 服务器也会存储下来
每次调用后端都会默认带上sessionid 对比各种信息 用户是哪个其中包括验证时间(传统方式)
前后端分离验证是jwt验证
详查ac笔记
默认调用
实际上sp是将路径映射为函数 字符串处理
如果业务非常简单 service和ctroller层分不太开
删除
删除也要用post 但是getmapping 好调试
@GetMapping("/user/delete/{userid}/")
public String deleteUser(@PathVariable int userid){
userMapper.deleteById(userid);
return "delete user";
}
插入
post 不是用明文
@GetMapping("/user/add/{userid}/{username}/{password}/")
public String addUser(@PathVariable int userid,@PathVariable String username,@PathVariable String password){
User user=new User(userid,username,password);
userMapper.insert(user);
return "Add user successfully";
}
查询满足大于等于2小于
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.ge("id",2).le("id",3);
return userMapper.selectList(queryWrapper);
User表示数据库中的一个表对应一个class
表中的某一列代表着一个对象
条件表达式
常用
用 . 来衔接多个条件
eq ne 等于 不等于
gt ge 大于 大于等于
lt le 小于 小于等于
查询某个id
return userMapper.selectList(null);
null表示无限制条件 返回所有数据
@GetMapping("/user/{userId}/")//传入参数 用大括号
public User getuer(@PathVariable int userid){
return userMapper.selectById(userid);
}
方法声明参数时
加上
@PathVariable
User内部才是各种的方法QueryWrapper
@GetMapping("/user/{userId}/")
public User getuer(@PathVariable int userid){
QueryWrapper<User> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("id",userid);
return userMapper.selectOne(queryWrapper);
}
Controller
@RestController
接受请求
@GetMapping("/user/all/") //以定义URL 请求和Controller 方法之间的映射
//处理请求 请求地址为
所以在这个注解下边定义了方法
//Mapping和Mapper没有关系
在Controller下调用数据库接口
@Autowired UserMapper usermapper;//先引用 再定义
//这一步是引入并定义了数据库的接口
查询数据库接口
MyBatis-plus
查询crud接口
认识idea
注解主要体现在target里边
target是编译之后的结果
加上注解 编译就会根据注解进行对应的操作 包括添加构造函数等等
主函数没有用到包就不会添加进编译
pojo理解
可以理解为pojo下
@Data就会连接同名class 与table user的类和表
这个类要求包含所有表头 的变量元素 尽量用Integer而不是int
使用@NoArgsConstructor @AllArgsConstructor来实现构造函数
还有get set tostring等等接口(因为设置的private属性)
实现pojo
mapper
controller
pojo table改成class
mapper 方法映射为sql语句
service 组合操作实现功能
cotroller层 接受请求 调用sevice接到返回值传给页面
在backend新建软件包pojo mapper controller
引用user为例
mapper下UserMapper注解 @Mapper(接口,继承,参数user)
public interface UserMapper extends BaseMapper<User> {}
pojo 下class
@Data @NoArgsConstructor @AllArgsConstructor
编译后自动添加无参构造函数 全参构造函数
user表内所有列id,username,password;
Controller
//有很多处理类型
post,get调用api一样 mapper将对应方法处理同一个连接有不同的解决方法
只映射其中某一种 类型名
+Mapping
这就使用@GetMapping//或@
只映射Get类型的请求的话用@GetMapping
如果要使用数据库
mybatisplus 增删改查已经实现了 传入pojo对象 实现方法
引用这些方法的方式是继承
@Mapper//mapper下一定加上这个注解 不加在backendapplication加上mapperscan
public interface UserMapper extends BaseMapper<User> {}
参数使用user时 输入user应该输入回车 引入pojo下的对象
一个表对应一个pojo 对应一个mapper
idea使用
idea可以图形化控制数据库
右侧->数据库->+号->添加数据源->mysql->
填入用户名密码和数据库->测试连接后再刷新一次就可以了
sp通过密码来访问数据库->更改application.properties的配置
环境依赖
把所有复制过以后
点击右侧maven仓库->刷新一下重新加载依赖项
在pom.xml文件中添加依赖:
Spring Boot Starter JDBC
Project Lombok
MySQL Connector/J
mybatis-plus-boot-starter
mybatis-plus-generator//第一步需要安装截至
spring-boot-starter-security
jjwt-api
jjwt-impl
jjwt-jackson
crud//增删改查
应用过程
sp原理就是一个一直在跑的程序 来一个请求处理一个请求 sp和ms(ms8)是处理请求的
后者是用来存储东西的 本质上就是数组
mysql基本语句
net start mysql80
net stop mysql80
mysql -uroot -p
之后再输入密码
show databases;
create database kob;//drop da--
use kob;//进入数据库
show tables;
class 就相当于java里的table;
create table user(id int,username varchar(100),password varchar(100));
insert into user values(1,'yxc','pyxc');//插入数据 密码要存密文
select * from user;//查询表里的数据
select * from user where id=1;//条件
delete from user where id=1;//删除
注意事项
进入mysql后 所有语句需要加入;
分号结尾
注销语句使用ctrl
+C
右键粘贴
使用方向箭头 回溯使用过的语句 使用回溯的语句(enter)会将回溯起点改为回溯的语句
mysql安装
键入 cd bin ->mysql --version
Suggestion [3,General]: 找不到命令mysql,但它确实存在于当前位置。默认情况下,Windows PowerShell 不会从当前位置加载命令。如果信任此命令,请改为键 .\
键入.\mysql --version即可
想在哪里都可以运行命令 就放进环境变量
不用执行命令需要进入路径了
此电脑->属性->高级系统设置->放进path里边->从上往下找 找到第一个结束
用户变量 和 系统变量都可以 上面是只有这个用户可以用 下面是每个用户都可以用
用gitbash vue有bug mysql有问题 win自带的终端就可以