自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 MySQL5.7 实现类似 MySQL8.0 中 row_number() over(partition by ... order by ...) 函数的分组排序编号效果

按照公司和部门分组、创建时间排序,并对每一组内的行进行编号。使用用户变量分别表示当前行的排序编号、前一个分组的字段值。在select子句中使用IF函数来判断当前行是否与前一行属于同一分组,如果是将当前行的排序编号加 1,否则将排序编号重置为 1。order by子句中包含分组和排序字段。使用用户变量来实现类似 ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...) 函数的分组排序编号效果,可能会影响查询的性能和稳定性,应该谨慎使用。如果不是迫不得已没办法,我会用它?

2023-02-25 16:09:04 5073 3

原创 一个基于 Spring Cloud + Vue + Socket.IO 的在线聊天网站,不来体验一下吗?

EasyChat是一个可以在线聊天的即时通讯平台,完全由个人设计和开发,初衷主要是觉得好玩儿,顺便学习一些新东西,所以网站有些简陋,属实是本人的能力和财力有限。网站没有任何付费内容,所有内容完全免费,欢迎大家使用体验,也期待大佬们的交流与反馈。 前端Vue 3、Vue Router、Vuex、Element Plus、Socket.IO、Axios、VueUse...后端Spring Cloud、Nacos、MyBatis-Plus、Netty-socketio、MinIO、Gson、MySQL、Redis

2022-08-01 09:23:42 1820 12

原创 Vue 3 父子组件传递数据的几种通信方式 (Prop、自定义事件、v-model...)

对比 Vue 2 的相关变化 - `v-on` 的 `.native` 修饰符已被移除。 - Vue 3 现在提供一个 `emits` 选项,和现有的 `props` 选项类似。`v-bind` 的 `.sync` 修饰符和组件的 `model` 选项已移除父组件向子组件传递数据( Prop )子组件向父组件传递数据( 自定义事件 )父子组件双向数据绑定( v-model )其他方式( 插槽、Provide / Inject )在这里不得不插一嘴,我个人觉得 组合式 API 是真的好用!

2022-05-10 14:02:54 4268

原创 MySQL 8.0 窗口函数的语法及使用详解(非常细)

MySQL 官方文档:https://dev.mysql.com/doc/refman/8.0/en/window-functions.html概述窗口函数常用的三大功能:分区、排序、计算。窗口函数 返回结果ROW_NUMBER() 当前行在其分区内的序号,例如:1,2,3,4…RANK() 当前行在其分区内的排名 (有间隔),例如:1,2,2,4…DENSE_RANK() 当前行在其分区内的排名 (无间隔),例如:1,2,2,3…PERCENT_RANK() 当前值在其分区内的百分

2022-04-24 19:21:09 2026

原创 Vue 3 中基于 vue-router 4 的路由配置与使用的简单示例

Vue 官方文档(中文):https://v3.cn.vuejs.org/guide/introduction.htmlVue Router 官方文档(中文):https://router.vuejs.org/zh/introduction.html创建路由文件导入 createRouter 函数和路由组件// index.js// 导入需要的函数、路由组件import { createRouter, createWebHashHistory } from 'vue-router'.

2022-04-11 14:15:12 2120

原创 Spring Boot 2.6.x整合Swagger启动失败报错问题解决(治标还治本)

问题Spring Boot 2.6.x版本引入依赖 springfox-boot-starter (Swagger 3.0) 后,启动容器会报错:Failed to start bean ‘ documentationPluginsBootstrapper ‘ ; nested exception…

2022-01-04 17:41:49 17408 38

原创 Redis 5.0版本配置文件 redis.conf 中的全部配置详解(超级详细)

redis 版本:5.0.14# redis启动命令(redis-server路径 redis.conf路径)./redis-server /path/to/redis.conf# 配置文件中的单位是大小写不敏感的!# units are case insensitive so 1GB 1Gb 1gB are all the same.INCLUDES 包含# 将其他配置文件导入到本配置文件include /path/to/local.confinclude /path/to/o.

2021-11-25 17:51:18 3310

原创 Linux 下 Redis 安装常见问题及解决方案

安装前操作系统:Linux CentOS 7.9 64位redis 安装包:官网下载地址:https://redis.io/download我使用的版本是 5.0.14 redis-5.0.14.tar.gz获得管理员权限,切换到 root 用户su root简单安装将安装包上传至服务器,解压到指定文件夹下:tar -zxvf redis-5.0.14.tar.gz -C /usr/local编译安装:cd /usr/local/redis-5.0.14/srcmake &a

2021-11-20 18:14:34 2390

原创 Linux 下 MySQL 8.0版本的安装配置部署的详细步骤(超完整)

准备工作操作系统:Linux CentOS 7.9MySQL安装包:在官网下载需要的版本,这里我用的版本是 MySQL 8.0.11mysql-8.0.11-linux-glibc2.12-x86_64.tarMySQL官网下载地址: https://dev.mysql.com/downloads/mysql/最好使用管理员权限 (root 用户)su root开始将安装包上传至服务器 解压到当前文件夹:tar -xvf mysql-8.0.11-linux-glibc2

2021-11-19 19:25:12 16110 2

原创 Java 完整学习路线,如何系统化的学好Java?

学习路线 1. Java 基础Java语法、Java常用类、数组、异常处理、集合框架、I/O、JDBC、多线程、网络编程、JUC并发编程、JVM 等... 2. Java WebTomcat、Nginx、Maven、Servlet、Cookie / Session、Filter过滤器、HTTP协议、MVC架构、前端基础 等... 3. 常用数据库MySQL / Oracle、Redis、MongoDB 等... 4. 常用中间件RabbitMQ / RocketMQ / Kafka、elas

2021-04-19 13:18:20 175 2

原创 MyBatis 框架的配置及使用详解

前言MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。在这里,通过写一个例子来说明。配置文件核心配置文件:SqlMapConfig.xml<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

2020-09-24 20:41:39 394

原创 数据库设计——实体类与表的映射

映射E-R图 (Entity-Relationship),实体关系映射图它的核心就是映射 (mapping):1.实体名,映射成表名2.属性,映射成列名3.对象标示符,映射成主键约束4.实体关系,映射成表之间的关系 (外键约束)映射举例实体类名字:User —— 表名:tbl_user属性:id —— 主键:id属性:name ——— 列名:name属性:password —— 列名:password实体类之间的映射实体类之间的关系:一对一 —— 映射成外键一对多 ——

2020-09-08 21:30:46 5344 1

原创 JavaWeb:Servlet 生命周期——创建对象,初始化,服务,销毁

配置 ServletXML 配置 Servlet<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.gem.servlet.HelloServlet</servlet-class> <load-on-startup>1</load-on-startup></servlet><servlet-mappi

2020-09-08 21:02:03 853

原创 数据库设计及三大范式

软件开发的流程立项->需求分析->概要设计->详细设计->实现->测试->交付->维护建模过程⚫需求分析阶段:分析客户的业务和数据处理需求 与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务。通过需求分析,就可以抽取出关键业务中的"实体类",这些实体类都是用来封装数据的,这些数据最终都是要存储到数据库中。⚫ 概要设计阶段:设计数据库的 E-R 模型图,确认需求信息的正确和完整。标识实体(Entity)标识数据库要管理的关键对象

2020-09-08 20:17:19 275 1

原创 Java:Hibernate框架的项目配置及应用

简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。即:全自动非常方便,数据持久化,但由于是全自动,如果想要自定义功能会非常麻烦。配置1.jar包这些是必须要导入的 jar

2020-08-30 12:39:05 344

原创 数据库之DTL——数据事务语言 事务

事务的定义指一组相关的SQL操作,这组操作必须同时成功或者同时失败我们所有的操作都是处在事务中的。在数据库中,执行业务的基本单位是事务,不是某一条SQL。数据库在默认情况下,事务都是打开的,也就说它是一直处在事务中的,一个事务的结束,代表着下一个事务的开启。执行commit或者rollback指令时,会结束当前事务。作用:用来保证数据的平稳性和可预测性。事务的四大特性(ACID)atomic,原子性,事务是不可再分割的,要么同时成功,要么同时失败consistency,一致性,事务一旦结束,

2020-08-30 09:53:12 1434

原创 Java基础阶段的自定义时间格式和 id 自增的实现

前言这段时间用Java基础做了一个小项目的初级功能模块,该项目是为了方便用户购买网店商品,并且对用户购买的信息进行统一管理的系统。记录一下其中的时间格式转换和 id 自增。用户的订单编号中包含创建订单时的日期,比如202008171001这样,后面的编号1001自动增加。订单创建时间格式为创建时的日期时间,比如2020-08-17 18:41这样。商品实体类的 id 自动增长。说明:这里是纯 Java 实现,不涉及数据库等其他方面。下面是我的代码实现:订单类订单实体类构造方法之一: pu

2020-08-17 20:31:17 762

原创 Java:HashSet判断添加元素不可重复的底层原理!

前言Set接口的实现类HashSet的特点是无序不可重复。底层实现:JDK 8.0 之前,数组 + 链表JDK 8.0 及之后,数组 + 链表 + 红黑树那么向HashSet集合中添加元素时,它是如何判断该元素是否重复呢?下面用代码举例来演示其原理。代码实现首先,创建一个实体类User:public class User { private String username; private String password; public User() { } public Use

2020-08-03 21:17:37 710

原创 Java 四种内部类

1.成员内部类把内部类当作成员(属性/方法)看待私有化成员内部类,再提供一个方法来创建内部类对象并调用,通过调用该方法来使用该类public class Outer { private int id = 1; private static int guid = 10; public void createMemeberInnerClass() { MemberInnerClass mic = new MemberInnerClass(); mic.memberInnerMethod(

2020-07-31 20:54:46 166

原创 Java面向对象三大特性

面向对象三大特性有封装、继承、多态。封装封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。比如简单的封装学生类:public class Student { private String name; private String sex; private int age; private String phone; public Student() { } public Student(String name, String sex, int age, String phon

2020-07-31 20:15:07 160

原创 Java中方法重写和方法重载的重要区别!

方法重写也就是子类覆盖父类的方法在不同类中,并且这两个类存在继承关系/接口实现两个方法的返回类型、方法名、参数列表完全一致重写方法的修饰符必须>=被重写方法重写方法抛出的异常必须<=被重写方法方法重载最常见的就是类的构造方法(无参构造、有参构造)在同一个类中,两个或两个以上的方法方法名必须相同返回类型可以不同参数不同(包括个数不同、顺序不同、类型不同)总结方法重载和方法重写在写代码时会频繁用到,并且比较简单,掌握起来应该很快。只要多敲多练习,多注意细节,就会非常

2020-07-30 09:09:45 182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除