Mysql(二)
约束数据完整性是指数据的精确性和可靠性。它是防止数据中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制,从以下四个方面考虑: 实体完整性:例如,同一个表中,不能存在两条完全相同无法区分的记录 域完整性:例如,年龄范围0 - 120,性别范围男 / 女 引用完整性:例如,员工所在部门,在部分表中要能找到这个部门 用户自定义完整性:例如,用户名唯一,密码不能为空等,本部分经理的工资不得高于本部门职工的平均工资的5倍 非空约束限定某个字段 / 某列的值不允许为空。关键字:NOT NULL。默认所有的类型的值都可以是NULL,包括INT,FLOAT等数据类型;非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空;一个表可以有很多列都分别限定了非空;空字符串不等于NULl,0也不等于NULL 12ALTER TABLE empMODIFY sex VARCHAR(30) NOT NULL; 唯一性约束用来限制某个字段 /...
mapstruct
mapstruct 可以帮助我们快速的实现两个对象之间的转换 引入依赖 新建一个抽象类或者接口标注 @Mapper 写一个方法 获取对象并使用 相关的 pojo 之间的转换 123@Mapping(target = "name", source = "personName")@Mapping(target = "id", ignore = true)PersonDTO conver(Person person);
Mysql(一)
碎碎念一入Mysql深似海,只见树叶不见森林😓 关系型数据库关系型数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表则成了一个库。表于表之间的数据记录有关系。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系型数据库,就是建立在关系模型基础上的数据库 复杂查询: 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询 事物支持:...
JWT认证原理
什么是JWTJWT 简称 JSON Web Token,也就是通过 JSON 形式作为 Web 应用中的令牌,用于在各方面之间安全的将信息作为 JSON 对象传输,在数据传输过程中还可以完成数据加密,签名等相关操作 JWT能做什么授权: 这是使用 JWT 最常见的方案,一旦用户登录,每个后续请求将包括 JWT,从而允许用户访问该令牌允许的路由,服务和资源。单点登录是当前广泛使用 JWT 的一项功能,因为它的开销很小并且可以在不同域中轻松使用 信息交换:JSON Web Token 是在各方面之间安全地传输信息的好办法,因为可以对 JWT 进行签名(例如使用公钥 / 私钥对),所以您可以确保发件人是他们所说的人。此外,由于签名是使用标头和有效负载计算的,因此还可以验证内容是否被篡改 为什么是JWT基于传统的Session认证认证方式我们知道,HTTP 协议本身是一种无状态协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还需要再一次进行用户认证才行,因为根据 HTTP...
MybatisPlus
基本使用插入数据1userMapper.insert(user); 删除数据1userMapper.deleteById(1627302300654780418L); 123Map<String, Object> map = new HashMap<>();map.put("user_name", "wxz");userMapper.deleteByMap(map); 更新数据1234User user = new...
java -source 8 中不支持 switch 表达式(请使用 -source 14 或更高版本以启用 switch 表达式)
碎碎念SpringBoot 最新版本已经标注了 JDK 最低版本是 17,相信以后 17 可能会作为主流版本,8 逐渐的会被替代,这个 BUG 主要是原因是 JDK 版本不符合,在最新的 SpringBoot 3.0.2 如何你还是用 JDK8 的话,它也会给你报一个无效的目标发行版:17,对于 IDEA 来说,大部分人可能只是改了 Project Structure 中的版本,可能没有注意到 Java 的编译环境(本人就是这里出的错) 解决办法这里主要有两个地方要修改,一个是 Project Structure 还有一个就是 Java Compiler
SpringSecurity
简介Spring Security 是 Spring 家族中的一个安全管理框架。相比较于另外一个安全框架 Shiro,它提供了更丰富的功能,社区资源也比 Shiro 丰富。一般来说中大型的项目都是使用 Spring Security 来做安全框架。小项目用 Shiro 比较多,因为相比与 Spring Security,Shiro 的上手更加简单,一般 Web 应用需要进行认证和授权: 认证: 验证当前访问系统的是不是本系统用户,并且要确认具体是哪个用户 授权: 经过认证后判断当前用户有权限进行某个操作 而认证和授权也是 Spring Security 作为安全框架的核心功能 认证Spring Security 的原理其实就是一个过滤器链,内部包含了提供了各种功能的过滤器 UsernamePasswordAuthenticationFilter:负责处理我们在登陆页天蝎了用户名密码的登陆请求 ExceptionTranslationFilter:处理过滤器链中抛出的任何 AccessDeniedException 和...
JDK14 新特性
碎碎念 从哪几个角度学习新特性 .batten { position: relative; } #astronaut-2-animation { position: absolute; width: 130px; top: -100%; right: 0; } lottie.loadAnimation({ path: '/json/astronaut/2.json', loop: true, autoplay: true, renderer: 'svg', container: document.getElementById('astronaut-2-animation'), }); 语法层面: lambda 表达式,switch,自动装箱,自动拆箱,enum,泛型<>,接口中的默认方法,静态方法,私有方法 API层面:...
IDEA 链式调用格式化配置
IDEA 对链式调用设置格式化经典的就是 Lambda 表达式,有的时候一段 stream 流代码很长,这时候我们就可以设置 IDEA 的格式化代码,对于有非常严重代码洁癖的我来说看起来简直太爽了,打开 setting -> Editor -> Code Style -> Java -> Wrapping and Braces 我这里选的是 Chop down if long,你也可以根据自己的喜好选择别的形式,设置完之后 ctrl + alt + L 代码看起来舒服多了。除此之外你还可以把 Lambda 的图标调试出来,这样看起来代码更好看(个人看法),跳转起来也方便 选择 setting -> Editor -> General -> Gutter Icons,勾选 Lambda,大功告成😄,看一下成果
函数式编程
概述为什么要学? 1.大数量下处理集合效率高 2.代码可读性高 3.消灭嵌套地狱 概念面向对象思想需要关注用什么对象完成什么事情,而函数式编程思想就类似于我们数学中的函数,它主要是关注对数据进行了什么操作 优点 代码简洁,开发快速 接近自然语言,易于理解 易于并发编程 Lambda表达式Lambda 是 JDK8 中一个语法糖,可以看成是一种语法糖,它可以对某些匿名内部类的写法进行简化,它是函数式编程思想的一个重要体现,让我们不用关注什么是对象,而是关注我们对数据进行了什么操作 基本格式1(参数列表) -> {代码} 我们在创建线程并启动时可以使用匿名内部类的写法: 123456new Thread(new Runnable() { @Override public void run() { System.out.println("小吉崽汁"); }}).start(); 可以使用Lambda的格式对其进行修改: 123new Thread(()...