- 博客(54)
- 资源 (3)
- 收藏
- 关注
原创 sql查询中拼接多个部门名称的方法
现在需要查询某个员工所属部门,员工与部门的关系为一对多,有两种方法,建议优先使用第二种。group_concat(),该函数返回带有来自一个组的连接的非NULL值的字符串结果。员工-部门表(staff_id,dept_id,······)部门表(id,dept_name,······)② 通过sql语句直接拼接好返回。员工表(id,······)
2023-05-23 15:57:50
471
原创 公司需求,需要一个员工生日列表,需要区分农历和国历
SeviceImpl:列出所有员工的生日列表,将农历生日转成果历生日,根据日期进行牌组,并根据年份月份进行筛选。最主要的功能就是农历转新历的工具类。Controller方法。
2023-05-23 15:25:42
243
原创 java基础——Map
练习:每位学生(姓名,年龄)都有自己的家庭住址。那么,既然有对应关系,则将学生对象和家庭住址存储到map集合中。学生作为键, 家庭住址作为值。注意,学生姓名相同并且年龄相同视为同一名学生。//构造方法 //get/set @Override public boolean equals(Object o) {} }//1,创建Hashmap集合对象。//2,添加元素。map . put(new Student("lisi" , 28) , "上海");
2023-04-23 16:00:30
6485
原创 java基础——迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类
数据结构 : 数据用什么样的方式组合在一起。每一个节点有零个或者多个子节点没有父节点的节点称之为根节点,一个树最多有一个根节点。每一个非根节点有且只有一个父节点名词含义节点指树中的一个元素节点的度节点拥有的子树的个数,二叉树的度不大于2叶子节点度为0的节点,也称之为终端结点高度叶子结点的高度为1,叶子结点的父节点高度为2,以此类推,根节点的高度最高层根节点在第一层,以此类推父节点若一个节点含有子节点,则这个节点称之为其子节点的父节点子节点子节点是父节点的下一层节点。
2023-04-18 11:45:00
1107
原创 java基础——常用API,自定义泛型、collection接口
java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。有两种方式可以获取GregorianCalendar对象:直接创建GregorianCalendar对象;通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象【本次课使用】java.lang.Math(类): Math包含执行基本数字运算的方法。
2023-04-18 11:28:36
420
原创 java基础——多态、代码块、权限修饰符、内部类,Object类
多态: 是指同一行为,具有多个不同表现形式。从上面案例可以看出,Cat和Dog都是动物,都是吃这一行为,但是出现的效果(表现形式)是不一样的。前提【重点】继承或者实现【二选一】方法的重写【意义体现:不重写,无意义】父类引用指向子类对象【格式体现】父类类型:指子类对象继承的父类类型,或者实现的父接口类型。将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。可以把内部类理解成寄生,外部类理解成宿主。内部类是Java类的五大成份之一,也是我们最后一个需要学习的成份。匿名内部类。
2023-04-18 11:19:13
392
原创 java基础——抽象类,接口、代码块、final、单例、枚举
父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道子类应该有哪个功能,但是功能具体怎么实现父类是不清楚的(由子类自己决定),父类完全只需要提供一个没有方法体的方法签名即可,具体实现交给子类自己去实现。我们把没有方法体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。抽象方法: 没有方法体的方法。抽象类:包含抽象方法的类。
2023-04-18 11:00:55
170
原创 Java基础知识——类、静态、继承、引用类型使用
类的定义格式如下:例如:1.2 如何通过类创建对象例如:1.3 封装1.3.1 封装的步骤1.使用 关键字来修饰成员变量。2.使用修饰getter和setter方法。public修饰getter和setter方法1.4 构造器1.4.1 构造器的作用通过调用构造器可以返回一个类的对象,构造器同时负责帮我们把对象的数据(属性和行为等信息)初始化好。1.4.3 构造器的应用首先定义一个学生类,代码如下:接下来通过调用构造器得到两个学生对象。1.5 this关键字的作用1.
2023-04-18 10:32:42
768
原创 sql加载报错:Duplicate column name ‘id‘
查询资料后发现问题是因为有了重复的列:id,在上图sql查询中出现了两个id,而在MySQL中联查,如果有相同的列名,软件会自动改变列名使之不重复,但idea不会自动更改因此发生了报错,所以加上group by 是不知道根据哪个id进行分组,将语句更改为如下图即可。今天工作的时候,在mysql中写好sql语句后,用group by 进行分组去重,复制到mapper.xml里面,运行时报错。而该sql语句在mysql中运行是正常的。
2023-04-18 10:02:43
1209
原创 Spring Cloud Gateway服务网关
过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?
2023-03-13 17:22:49
108
原创 第14章 并发控制与恢复
事务根据需要获取锁。一旦事务释放锁,它就会进入收缩阶段,并且无法发出锁定请求)两段锁协议是指同一事务对任何数据进行读写之前必须对该数据加锁,在释放一个封锁之后,该事务不再申请和获得任何其他封锁。立即修改方案允许在事务提交之前对缓冲区或磁盘本身更新未提交的事务,更新的块输出到磁盘可以在。考试范围: 14.1-14.3, 14.8-14.11。的任何时间进行,块的输出顺序可能与写入块的。考试题型: 事务操作。T1符合两段锁协议,两阶段锁定协议的变体。
2022-12-21 18:18:33
611
原创 第7章 数据库设计和ER模型
联系集:是多个实体间的相互关联的集合。弱实体集:没有足够的属性来形成主键。实体集:是共享相同属性的集合。考试范围 7.1-7.7。考试题型:数据库设计题。
2022-12-21 18:03:03
616
原创 第5章 高级SQL
-SQL 函数 --定义一个函数,该函数给定部门的名称,返回该部门中教师数的计数。end;--查找超过 12 名讲师的所有部门的部门名称和预算。
2022-12-21 17:55:46
977
原创 第4章 中级SQL
考试范围: 4.1-4.7考试题型: 计算题考试内容:连接类型(与第3章合并考察)视图的定义与使用事务(与17-19章合并考察)完整性的概念SQL中如何定义、修改各类完整性(Primary key, foreign key, check, unique, not null, default,添加、删除字段、添加删除约束、添加删除索引等)SQL数据类型和模式(会用)授权(grant\revoke\查看授权情况)Natural Join自然联接匹配所有公共属性具有相同值的元组,并且仅保留每个公共列的一个副本
2022-12-21 17:54:37
506
原创 第3章 SQL语言
考试范围: 3.1-3.10考试题型:计算题考试内容: (可按标准sql、mysql的语法格式来写SQL语句,考试时要求有无明显语法错误)SelectInsertDeleteUpdateSQL 允许在关系和查询结果中重复,因为消除重复非常耗时。select 子句可以包含涉及运算 +、–、*和 / 以及对元组的常量或属性进行操作的算术表达式。where语句:比较结果可以使用逻辑连接词和、或和非组合。对多个关系的查询联表查询(同一张表)找到每个员工的姓名以及他/她的经理姓名。IDname。
2022-12-21 17:51:58
429
原创 第2章 关系模型
④其他属性逐个与②③的属性结合,求属性闭包 ,直至X的闭包等于U。关系的超键是一个或多个属性的集合,这些属性的值保证唯一地标识关系中的元组。设有关系模式R,U= {A,B,C}为R的属性集, F为R上的函数依赖集。若W是候选码,则必须满足两个条件 ①W的闭包为全集U ②W没有冗余。候选键是最小超键,即构成超键的一组属性,但它们的子集都不是超键。②只在F左部出现的属性,一定存在于某候选码当中。③两边都没有出现的属性,一定存在于候选码中。①只在F右部出现的属性,不属于候选码。考试范围: 2.1 -2.6。
2022-12-21 17:48:30
500
原创 第1章 概述
考试范围: 1.1-1.10考试内容: 章节后的Review Terms(名词基本都在课文中)考试题型: 综合题Database-management system (DBMS) :A collection of interrelated data and a set of programs to access those data.数据库管理系统(DBMS):一组相关数据和一组访问这些数据的程序。Database-system applications:A database application is
2022-12-21 17:47:43
848
原创 centos7安装JDK和Tomcat
Tomcat的安装非常简单,主要分为2部分:下载JDK软件https://www.oracle.com/java/technologies/downloads在页面下方找到:下载在弹出的页面中输入Oracle的账户密码即可下载(如无账户,请自行注册,注册是免费的)登陆Linux系统,切换到root用户通过FinalShell,上传下载好的JDK安装包创建文件夹,用来部署JDK,将JDK和Tomcat都安装部署到:/export/server 内解压缩JDK安装文件配置JDK的软链接配置JA
2022-12-06 11:49:16
672
原创 Ubuntu系统安装MySQL5.7&&MySQL8.x
安装操作需root权限,你可以:通过 sudo su -,切换到root用户或在每一个命令前,加上sudo,用来临时提升权限下载apt仓库文件配置apt仓库弹出框中选择: (Ubuntu18.04系统的代号是bionic,选择18.04的版本库用来安装)弹出框中选择:弹出框中选择:最后选择:更新apt仓库的信息检查是否成功配置MySQL5.7的仓库看到如图所示字样,即成功安装MySQL5.7弹出框中输入root密码并选择ok,密码任意,课程中以123456代替再次输入root密码确认启动MyS
2022-12-06 11:42:17
3539
1
原创 Centos7系统安装MYSQL5.7或MYSQL8.x
MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。MySQL数据库可谓是软件行业的明星产品,无论是后端开发、大数据、AI、运维、测试等各类岗位,基本上都会和MySQL打交道。MySQL的安装我们可以通过前面学习的yum命令进行。配置yum仓库使用yum安装MySQL安装完成后,启动MySQL并配置开机自启动检查MySQL的运行状态主要配置管理员用户root的密码以及配置允许远程登录的权限。获取MySQL的初始密码登陆MySQL数据库系统
2022-12-06 11:39:26
411
原创 Linux常用操作
功能:控制系统服务的启动关闭等语法:功能:创建文件、文件夹软链接(快捷方式)语法:参数1:被链接的参数2:要链接去的地方(快捷方式的名称和存放位置)实例:ln -s /etc/yum.conf ~/yum.confln -s /etc/yum ~/yum语法:-d 按照给定的字符串显示日期,一般用于日期计算格式化字符串:通过特定的字符串标记,来控制显示的日期格式示例:按照2022-01-01的格式显示日期按照2022-01-01 10:00:00的格式显示日期-d选项日期计算支持的时间标记为:修改时区为中国
2022-12-06 10:17:33
250
原创 Linux基础命令学习
功能:列出文件夹信息语法:在Linux中以开头的,均是隐藏的。默认不显示出来,需要选项才可查看到。功能:展示当前工作目录语法:功能:切换工作目录语法:参数:目标目录,要切换去的地方,不提供默认切换到每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录。普通用户的HOME目录,默认在:root用户的HOME目录,在:FinalShell登陆终端后,默认的工作目录就是用户的HOME目录相对路径,非开头的称之为相对路径相对路径表示以作为起点,去描述路径,如,表示当前工作目录内的test文件夹内的
2022-11-28 11:33:42
277
原创 redis-客户端
结构, 这个结构保存了命令的实现函数、 命令的标志、 命令应该给定的参数个数、 命令的总执行次数和总消耗时长等统计信息。该表是一个字典, 字典的键是一个 SDS 结构, 保存了命令的名字, 字典的值是命令所对应的。命令与命令参数(argv argc)输出缓冲区(buf bufpos)结构时, 它会将客户端状态的。输入缓冲区querybuf。当程序在命令表中成功找到。命令的实现函数cmd。
2022-11-26 14:04:00
396
原创 redis-事件
事件, 触发连接应答处理器执行: 处理器会对客户端的连接请求进行应答, 然后创建客户端套接字, 以及客户端状态, 并将客户端套接字的。执行命令将产生相应的命令回复, 为了将这些命令回复传送回客户端, 服务器会将客户端套接字的。事件与命令回复处理器进行关联: 当客户端尝试读取命令回复的时候, 客户端套接字将产生。执行, 当命令回复处理器将命令回复全部写入到套接字之后, 服务器就会解除客户端套接字的。之后, 假设客户端向主服务器发送一个命令请求, 那么客户端套接字将产生。事件与命令回复处理器之间的关联。
2022-11-26 14:03:18
344
原创 CentOS7安装Docker
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors。参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors。Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!启动docker前,一定要关闭防火墙后!启动docker前,一定要关闭防火墙后!启动docker前,一定要关闭防火墙后!
2022-11-25 22:55:14
85
原创 redis-AOF持久化
如果不加以控制的话,体积过大的AOF文件很可能对Redis服务器、甚至整个宿主计算机造成影响,并且AOF文件的体积越大,使用AOF文件来进行数据还原所需的时间就越多。(loop),这个循环中的文件事件负责接收客户端的命令请求,以及向客户端发送命令回复,而时间事件则负责执行像serverCron函数这样需要定时运行的函数。因为服务器在处理文件事件时可能会执行写命令,使得一些内容被追加到aof_buf缓冲区里面,所以在服务器。当AOF持久化功能处于打开状态时,服务器在执行完一个写命令之后,会以协议格式。
2022-11-25 22:05:40
140
原创 redis-RDB持久化
它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。为了解决这个问题,Redis提供了。,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面,避免数据意外丢失。的时间, 以及自最后一次保存 RDB 文件以来, 服务器进行了多少次写入的。记录服务器最后一次执行。记录了服务器触发自动。
2022-11-25 22:04:42
169
原创 redis-数据库
命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键。Redis是一个键值对(key-value pair)数据库服务器,服务器中的每个数据库都由一个redisDb结构表示,其中,redisDb结构的。在初始化服务器时,程序会根据服务器状态的。命令,可以设定一个时间戳,该过期时间是一个UNIX时间戳,当键的过期时间来临时,服务器就会自动从数据库中删除这个键,可以通过。过期键的定期删除策略由。
2022-11-25 22:04:10
246
原创 redis-对象
属性记录了对象所使用的编码, 也即是说这个对象使用了什么数据结构作为对象的底层实现, 这个属性的值可以是表 8-3 列出的常量的其中一个。编码的列表对象使用双端链表作为底层实现, 每个双端链表节点(node)都保存了一个字符串对象, 而每个字符串对象都保存了一个列表元素。)技术实现的内存回收机制, 通过这一机制, 程序可以通过跟踪对象的引用计数信息, 在适当的时候自动释放对象并进行内存回收。, 那么字符串对象将使用一个简单动态字符串(SDS)来保存这个字符串值, 并将对象的编码设置为。
2022-11-24 15:25:49
151
原创 redis-压缩列表
压缩列表是 Redis 为了节约内存而开发的, 由一系列特殊编码的连续内存块组成的顺序型(sequential)数据结构。一个压缩列表可以包含任意多个节点(entry), 每个节点可以保存一个字节数组或者一个整数值。)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项, 并且每个列表项要么就是小整数值, 要么就是长度比较短的字符串, 那么 Redis 就会使用压缩列表来做列表键的底层实现。, 节点值可以是一个字节数组或者整数, 值的类型和长度由节点的。属性以字节为单位, 记录了。
2022-11-24 14:22:57
291
原创 redis-整数集合
数组的一个数组项(item), 各个项在数组中按值的大小从小到大有序地排列, 并且数组中不包含任何重复项。将一个新元素添加到整数集合里面, 并且新元素的类型比整数集合现有所有元素的类型都要长时, 整数集合需要先进行。整数集合(intset)是 Redis 用于保存整数值的集合抽象数据结构, 它可以保存类型为。(upgrade), 然后才能将新元素添加到整数集合里面。数组是整数集合的底层实现: 整数集合的每个元素都是。的整数值, 并且保证集合中不会出现重复元素。属性记录了整数集合包含的元素数量, 也即是。
2022-11-24 12:44:12
295
原创 redis-跳跃表
跳跃表(skiplist)是一种有序数据结构, 它通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的。的底层实现之一: 如果一个有序集合包含的元素数量比较多, 又或者有序集合中元素的成员(member)是比较长的字符串时, Redis 就会使用跳跃表来作为有序集合键的底层实现。:记录跳跃表的长度,也即是,跳跃表目前包含节点的数量(表头节点不计算在内)。, 比如节点的数量, 以及指向表头节点和表尾节点的指针, 等等。:指向跳跃表的表头节点。:指向跳跃表的表尾节点。两个结构定义, 其中。
2022-11-24 12:33:56
279
原创 redis-字典
技术来优化子进程的使用效率, 所以在子进程存在期间, 服务器会提高执行扩展操作所需的负载因子, 从而尽可能地避免在子进程存在期间进行哈希表扩展操作, 这可以避免不必要的内存写入操作, 最大限度地节约内存。(load factor)维持在一个合理的范围之内, 当哈希表保存的键值对数量太多或者太少时, 程序需要对哈希表的大小进行相应的扩展或者收缩。Redis 的字典使用哈希表作为底层实现, 一个哈希表里面可以有多个哈希表节点, 而每个哈希表节点就保存了字典中的一个键值对。另一方面, 当哈希表的负载因子小于。
2022-11-22 11:26:30
84
原创 redis-简单动态字符串SDS
Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS 用作 Redis 的默认字符串表示。每个// 记录 buf 数组中已使用字节的数量// 等于 SDS 所保存字符串的长度int len;// 记录 buf 数组中未使用字节的数量int free;// 字节数组,用于保存字符串};free属性的值为0。
2022-11-22 10:29:34
86
原创 redis-集群
Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。
2022-11-16 20:40:29
174
原创 Web运作原理探析
连接建立后发送HTTP/HTTPS请求,请求目标通常是一个HTML文件,服务器收到请求后,将发回一个 HTTP 响应报文,内容包括相关响应头和 HTML 正文。包含符合类型的HTML表单数据的HTTP请求组成结构解析这类型的HTTP请求时,先确定边界值根据请求头中 Content-Type: multipart/form-data;包含符合类型的HTML表单数据的HTTP请求组成结构解析这类型的HTTP请求时,先确定边界值根据请求头中 Content-Type: multipart/form-data;
2022-11-16 20:31:10
269
原创 redis-哨兵
哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行,当出现故障时通过选择新的master并将所有slave连接到新的master。
2022-10-30 17:47:29
436
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人