- 博客(44)
- 收藏
- 关注
原创 java-mybatis01
MyBatis 是一款优秀的 基于 ORM 的半自动轻量级持久层框架,它支持定制化的 SQL、存储过程以及高级映射,MyBatis 避免了几乎所有 JDBC 代码和手动设置参数以及获取结果集。ORM把关系数据库包装成面向对象的模型,采用ORM框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象,而ORM框架则将这些面向对象的操作转换成底层SQL。ORM完成面向对象的编程语言DAO关系数据库的映射后,开发人员可以利用面向对象设计语言的建议易用性,也可利用关系数据库的技术优势。
2025-04-27 22:04:50
527
原创 Flink-01学习 介绍Flink及上手小项目之词频统计
官网概述学习Flink具体包括四个关键概念:流数据的持续处理,事件时间,有状态流处理和状态快照。Apache Flink 是一个开源的流处理框架,旨在处理批处理和实时数据处理,具有高吞吐量和低延迟的特点。Apache Flink 是一个用于对无界和有界数据流进行有状态计算的框架和分布式处理引擎。Flink 被设计为可在所有常见的集群环境中运行,并以内存速度和任意规模执行计算。特点流处理:Flink 将批处理视为流处理的一种特殊情况。这种方法允许实时数据处理,实现即时的洞察和行动。
2025-04-17 19:13:29
864
原创 Redis的常见的问题(穿透、雪崩、击穿、热key、大key、不一致)
产生原因:大量的应用请求无法在 Redis 缓存中进行处理,紧接着,应用将大量请求发送到数据库层,导致数据库层的压力激增。1、对空值进行缓存:对于DB中没有的数据,进行redis缓存,假如上述的-0数据在DB中没有,那么可以在redis中对-=对数据进行空值缓存(key = -0,value = 0),那么当请求过来的时候,会返回一个null值。产生原因:redis缓存中没有数据,但是数据库中有数据,大量的请求访问redis中找不到数据,直接打入数据库,可能造成数据库压力太大,数据库崩溃,叫缓存击穿。
2023-03-19 23:22:01
418
原创 10.20 第一次复盘
10.20 个人第一次复盘项目项目背景项目初始阶段,预防后期新增不同类型场景,限定了页面的格式并且将每个都进行了路由限定,以此限定场景项目改变
2022-10-21 11:33:03
202
原创 简单的python基础
Python 崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。与 Java 和 C++ 这些语言相比,Python 最大的两个特点是:python是一种弱类型语言,变量的定义不需要在前加类型说明,而且不同类型之间可以方便地相互转换。python有五个标准的数据类型:其中 List、Tuple、Dictionary 为容器,Python 支持四种不同的数字类型:int(有符号整型)、long(长整型)、float(浮点型)、complex(复数)。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
2022-07-14 10:59:11
321
原创 websocket消息推送
什么是websocketwebsocket协议是基于TCP的一种新的网络协议,实现浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。为什么需要websocket?因为http协议的通信只能由客户端发起,做不到服务器主动向客户端发送消息。maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <
2022-04-12 10:04:08
1060
转载 alibaba-cloud- 学习1
阿里开源组件Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config。Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。Dubbo:在国内应用非
2022-03-21 15:01:43
4186
原创 java9 -springboot排序的另外一种方式
首先,在需要排序的返回的VO字段中,需要实现一个方法。public class StatisticsListVO implements Comparable<LifeVillageAcceptanceStatisticsListVO> {; /** * totalTasks 总任务数 **/ @ApiModelProperty(value = "总任务数") private Integer totalTasks; @Override
2022-03-15 13:43:55
749
原创 java8 - 排序,包括double类型的排序
首先将所有的数据放到了一个List中,然后以List中的某个字段进行排序// 当List中的字段为int类型的时候, // 降序 resultList.sort((o1, o2) -> { int d1 = o1.getNums(); int d2 = o2.getNums(); return (d2-d1); }); // 升序 resul
2022-03-11 15:55:47
3358
原创 java7 - 灵活返回list对象
创建一个返回对象VO将需要灵活返回的字段set进去 LifeBasicInformationVO lbiVO = new LifeBasicInformationVO(); lbiVO.setKey("所属派出所"); lbiVO.setValue(lifeCommunity.getPoliceBureauName()); resultList.add(lbiVO); // 所属街道(乡镇) lbiVO = new .
2022-03-11 15:46:57
1013
原创 java6 - split(“%“)的用法
split("%")[0] 得到的是第一个%之前的内容split("%")[1] 得到的是第一个%和第二个%之间的内容
2022-03-11 14:57:29
535
原创 力扣初级算法 - 数组 - 删除排序数组中的重复项
题目:给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。作者:力扣 (
2022-02-26 08:34:40
313
原创 java5 --调用接口工具类
写了一个可以调用的接口的工具类package com.switchcloudonemachineonegear.utils;/** * @author songxue * @date 2022-01-19 16:52 */import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;import org.apache.http.NameValuePair;import org.apache.http.
2022-02-11 14:27:50
376
原创 Vue学习 -- 第一个Vue程序
安装vue官方提供了CDN引用和NPM引用,为了便于学习,我们首先选择用CDN的方式进行引用。第一个vue程序首先,我们先来写一个老生常谈的helloworld,来进入vue世界。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> &l
2022-01-12 16:28:26
136
原创 Vue学习 -- 开启Vue简介
Vue的特点更加轻量 20kb min + gzip渐进式框架响应式的更新机制学习成本低接下来的学习计划基础篇:VUE核心知识点生态篇:大型VUE项目所需的周边技术实战篇:开发基于VUE的Ant Design Pro福利篇:VUE3.0相关知识介绍...
2022-01-12 09:08:05
188
原创 MySQL学习 -- 数据库设计三范式
什么是设计范式?设计表的依据。按照这个三范式设计的表不会出现数据冗余。三范式都是哪些?第一范式:任何一张表都应该有主键,并且每一个字段原子性不可再分。第二范式:建立在第一范式的基础之上,所有非主键字段完全依赖主键,不能产生部门依赖。—多对多的时候,三张表,关系表中两个外键。第三范式:建立在第二范式的基础之上,所有非主键字段直接依赖主键,不能产生传递依赖。注意:在实际的开发中,以满足客户的需求为主,有时候会那冗余换执行速度。一对一怎么设计?...
2022-01-11 16:58:32
325
原创 MySQL学习 --视图
视图(view)什么是视图?站在不同的角度去看待数据(同一张表的数据,通过不同的角度去看待)视图是一种根据查询(也就是SELECT表达式)定义的数据库对象,用于获取想要看到和使用的局部数据。视图有时也被称为“虚拟表”视图可以被用来常规表(称为“基表”)或其他视图中查询数据。相对于从基表中直接获取数据,视图有以下好处:1、访问数据变得简单。2、可被用来对不同用户显示不同的表的内容用来协助适配表的结构已适应前端现有的应用程序。怎么创建视图create view myview as se
2022-01-11 14:55:12
697
原创 MySQL学习 -- 索引
索引什么是索引?有什么用?索引就相当于一本书的目录,通过目录可以快速的找到对应的资源。在数据库方面,查询一张表的时候,有两种检索方式:全表扫描根据索引检索(效率很高)索引为什么可以提高检索效率?根本的原理是缩小了扫描的范围。索引虽然可以提高检索效率,但是不能随意的添加索引,因为索引也是数据库当中的对象,也需要数据库不断的维护。是有维护成本的。比如,表中的数据经常被修改这样就不适合添加索引,因为数据一旦修改,索引需要重新排序,进行维护。添加索引是给某一个字段或者说某些字段添加索引。怎么创
2022-01-05 15:45:33
263
原创 java3 -- list判空
首先有一个list的列表。比如nameList。if(nameList.isEmpty) { // 这是表明nameList的列表为空,接下来就可以写逻辑了}
2021-12-18 09:55:37
506
原创 java - 时间工具 -给出最早时间和最晚时间,得到之间的所有时间的年-月
public static List<String> getMonthTimeList(Date start ,Date end) { Calendar calStart = Calendar.getInstance(); Calendar calEnd = Calendar.getInstance(); // 格式化起始日期 和结束日期 calStart.setTime(start); calEnd.setTime
2021-12-17 16:48:03
1583
原创 MySQL学习 -- 事务
事务Transaction什么是事务?一个事务是一个完整的业务逻辑单元,不可再分。要想保证以上的两条DML语句同时成功或者同时失败,那么就需要使用数据库的“事务机制”。和事务相关的语句只有:DML语句。(insert ;delete ; update)。因为它们三个语句都是和数据库表当中的“数据”相关的。事务的存在是为了保证数据的完整性,安全性。事务可以保证多个操作原子性,要么全成功,要么全失败。对于数据库来说,事务保证批量的DML的全成功和全失败。事务具有4个特征ACID:原子性(Atom
2021-12-10 16:40:56
883
原创 MySQL学习 -- 存储引擎
存储引擎数据库中各表均被(在创建表时)指定的存储引擎来处理。服务器可用的引擎依赖于以下因素:* MySQL的版本* 服务器在开发时如何被配置* 启动选项为了解当前服务器中有哪些存储引擎可用,可使用SHOW ENGINES语句:完整的建表语句create table `t_x` ( 'id' int(11) Default NULL) ENGINE=InnoDB default CHARSET=utf8注意:在MySQL中,凡是标识符是可以用飘号``括起来。最后不用,不通用。建
2021-11-25 15:18:22
114
原创 MySQL学习 -- 约束
约束什么是约束?约束在创建表的时候,可以给表的字段添加相应的约束。添加约束的目的,是为保证表中数据的合法性、有效性、完整性。常见的约束有哪些?非空约束(not null):约束的字段不能为null唯一约束(unique):约束的字段不能重复主键约束(primary key):约束的字段既不能为null,也不能重复(简称PK)外键约束(foreign key):……(简称FK)检查约束(check)注意:Oracle数据库中有check约束,但是mysql没有。目前mysql不支持该约束
2021-11-24 10:51:34
131
原创 MySQL学习 -- 删除表中数据
删除表中数据删除数据语法格式:delete from 表名where 条件;注意:没有条件的话,全部删除。切记!!!!案例:删除10部门数据怎么删除大表?如果数据十分多的话,那么删除的会非常慢。慢的原因是没有释放数据的真实存储空间。使用表的截断truncate table 表名;注意:截断一定要再三确认不需要,截断之后数据不可回滚,永久丢失...
2021-11-17 15:51:11
612
原创 MySQL学习 -- 修改表中数据
修改表中数据修改数据:update语法格式:update 表名set 字段名1 = 值1,字段名2 = 值2 ……where 条件;注意:如果没有条件,那么整张表的数据则会全部更新。案列:将部门10的loc修改为SHANGHAI,将部门名称修改为RENSHIBU。更新所有记录update 表名set 字段1 = 值1;更改/所有的...
2021-11-17 15:38:07
6097
原创 MySQL学习 -- 表中插入数据及复制表和批量插入
表中插入数据insert语句插入数据语法格式insert into 表名(字段名1,字段名2,字段名3,……)values(值1,值2,值3,……)要求:字段的数量和值的数量相同,并且数据类型要对应相同。案例:往上节的数据中插入数据mysql> insert into -> t_student(no,name,sex,chlass_no,birth) -> values(1,'zhangsan','1','gaosan1ban','1950-10-12')
2021-11-11 14:11:45
1995
原创 MySQL --- limit以及通用分页SQL
limit使用(重点中的重点!!!分页查询)limit是mysql特有的,其他数据库中没有,不通用。(Oracle中有一个相同的机制,叫做rownum)
2021-11-10 10:23:27
964
原创 Vuejs -- MVC思想
前端MVC思想MVVM是前端视图层的分层开发思想,主要是用来将每一个页面分成M,VMV这三种组件。这三个组件在前端开发中分工协作,分工明确。其中,VM是MVVM的核心,因为是M和V之间的一个整体的调度者。我们所要学习的就是通过VUE.JS框架来创建VM这一组件,为M和V来进行服务注意:对于controller前端开发的控制器和后端开发的控制器在概念上有一定的区别,对于前端开发而言,controller不仅仅只是用来接收并处理请求,更重要的是还要处理具体业务逻辑。对于后端而言,controller会继续
2021-11-10 08:30:33
612
原创 Vue学习 -- Vuejs了解
Vuejs概述什么是VuejsVuejs是一套构建用户界面的框架,它只关注视图层的内容,它是前端的主流框架之一。前端三大主流框架:Angular.jsReact.jsVue.js前端框架主要负责的是MVC中的V的这一层,主要的工作就是和界面打交道,主要是用来对页面中的数据进行处理,以及制作前端页面相关的特效及动画。为什么要用Vuejs使用Vuejs做前端框架,对于处理数据的方面可以完全替换掉原有的DOM操作的理念。因此,不需要再关心DOM是如何渲染的,有更多的时间去关注业务逻辑本身。
2021-11-09 16:53:17
525
原创 MySQL学习 --- union用法
union用法(可以将查询结果集相加)案例:找出工作岗位是salesman和manger的员工?第一种:用or第二种:用in第三种:union(将两边的查询结果相加)
2021-11-09 15:47:33
613
原创 MySQL学习 --- 嵌套查询
where后面嵌套子查询什么是子查询?子查询都可以出现在哪里?select 语句当中嵌套select语句,被嵌套的select语句是子查询。子查询可以出现在哪里?select ……(select).from ……(select).where ……(select).where 子句中使用子查询案例:找出高于平均薪资的员工信息...
2021-11-09 14:55:18
685
原创 MySQL学习 --- 连接查询
连接查询什么连接查询? 在实际开发中,大部分情况下都不是从单表中查询数据,一般都是多张表联合查询,取出最终的结果。 在实际开发中,一般一个业务都是会对应多张表。比如:学生和班级,起码得两个表来存。当然,也可以存到一个表里面,但是那么多的信息存到一个表中,数据就会出现大量的重复,导致数据冗余。连接查询的分类?根据语法出现的年代来划分的话,包括:SQL92(一些老的DBA可能还在用这种语法。DBA:DataBase , Administrator,数据库管理员)SQL99(比较新的语法)根据表
2021-11-08 14:02:12
120
原创 MySQL学习 ---- 分组查询group by
分组查询 – group bygroup by 和 havinggroup by:是按照某个字段或者某些字段进行分组。having:having是对分组之后的数据进行再次过滤案列,找出每个工作岗位的最高薪资。这种就需要分组了,因为找的并不是全部的最高薪资,而且每一个工作岗位的最高薪资。分组函数永远都是在group by 之后进行的是select max(sal) from emp group by job;注意:分组函数一般都会和group by联合使用,这也是为什么它会被称为分组函数的原因。
2021-11-05 15:05:52
1152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人