- 博客(69)
- 收藏
- 关注
原创 Shell入门
整理了一个包含多种Shell语法元素的Shell脚本示例,并附有详细的注释。这个脚本展示了变量、条件判断、循环、函数、数组、字符串操作、文件操作等常见的Shell编程技巧,适合初学者学习和参考。
2025-02-26 09:49:02
173
原创 3NF讲解
1NF:每个单元格包含单一数据。2NF:消除部分依赖,确保每个非主属性完全依赖于主键。3NF:消除传递依赖,确保每个非主属性只依赖于主键,不通过其他非主属性。3NF的核心目的是减少数据冗余和避免数据不一致性,同时也能提升数据库的维护性。
2025-02-06 23:26:23
311
原创 SpringBoot+MyBatis+lombok进行数据库操作的小案例
记录一下个人整理的一个SpringBoot+MyBatis+lombok进行数据库增删改查的小案例,可以用于理解学习
2024-11-27 13:20:03
971
原创 Flink简介及小案例
Flink 的操作主要包括集群的搭建与配置,以及通过 API 编写数据处理任务。安装和启动相对简单,而任务的实现可以根据需求组合不同的算子来实现复杂的处理逻辑。如果你有具体的任务需求或想了解某些细节,我可以为你提供更详细的帮助。
2024-10-15 10:21:46
629
原创 数据仓库建模和建表的联系与区别
建表是数据仓库开发的物理实现阶段,具体涉及将设计的模型转换为实际的数据库表结构。这一阶段的目标是创建存储数据的物理表结构。数据仓库建模是数据仓库设计的前期阶段,专注于从业务需求角度设计数据的逻辑结构,确保支持多维度分析和查询。而建表是数据仓库开发的后期阶段,将数据模型转换为实际的数据库表,以便存储和访问数据。两者密切相关,建模决定了如何组织数据,而建表则是实现这些设计并确保它们在实际环境中高效运行的步骤。
2024-10-12 14:03:27
857
原创 雪花模型(Snowflake Schema):详解与案例
雪花模型是一种通过规范化减少数据冗余的建模方法,适用于对存储空间和数据一致性有较高要求的场景。在雪花模型中,维度表被进一步拆分成多个子表,虽然减少了数据冗余,但也增加了查询的复杂度和性能成本。在本文的案例中,我们展示了如何将客户维度、产品维度等拆分为多个子表,最终构建出一个雪花模型的数据仓库。这种模型能够有效减少冗余,确保数据一致性,但查询时需要连接多个表,因此在设计和使用时需要权衡查询性能与数据规范化之间的关系。少了数据冗余,但也增加了查询的复杂度和性能成本。
2024-10-12 13:52:12
1798
原创 星型模型(Star Schema):详解与案例
星型模型是一种简单、易于理解且查询性能高的维度建模方法,广泛应用于各种业务分析场景。通过将业务数据划分为事实表和维度表,星型模型能够有效地支持复杂的分析需求,并提供快速的查询响应能力。*:分析生产线效率、供应链管理等。星型模型是一种简单、易于理解且查询性能高的维度建模方法,广泛应用于各种业务分析场景。通过将业务数据划分为事实表和维度表,星型模型能够有效地支持复杂的分析需求,并提供快速的查询响应能力。
2024-10-12 13:51:02
2654
原创 数据仓库中的维度建模:深入理解与案例分析
维度建模是数据仓库设计中最常用的一种方法,旨在简化数据访问、提高查询效率,特别适用于需要对数据进行多维分析的场景。本文将深入探讨维度建模的核心概念、设计步骤以及如何将其应用于实际案例中。
2024-10-12 13:15:49
1625
原创 数据仓库分层理论
数据仓库的分层理论是数据仓库建设和设计的基础之一,目的是将不同类型、不同处理阶段的数据分层存放和管理,以提高数据处理的效率和灵活性,同时增强数据的可维护性和可扩展性。在数据仓库中,分层帮助我们理清从原始数据到最终业务数据的整个处理流程。
2024-10-11 17:18:02
1049
原创 关系型数据库索引操作
在MySQL、SQL Server、Oracle中,建立、修改、删除索引的操作有很多相似之处,但由于每个数据库系统的语法和特性不同,具体操作有一些差异。以下是三种数据库中关于索引操作的分类总结。
2024-10-09 14:24:47
1134
原创 关系型数据库索引总结-作用,类型,适用场景,缺点
索引是关系型数据库中非常重要的性能优化工具,它通过加速数据检索、排序和连接等操作,显著提升查询性能。但在设计索引时需要权衡利弊,避免过度使用索引导致性能下降。
2024-10-09 14:21:16
507
原创 关系型数据库日期处理函数讲解
在 MySQL、Oracle 和 SQL Server 中,日期处理函数是很常用的功能,用于处理和操作日期时间数据。但三个数据库中的相关语句又有差别,因此整理了一下个人开发中常用的有关日期时间的函数或解决思路,仅供参考!
2024-10-08 16:19:02
945
原创 JDBC连接池&JDBCTemplate
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。概念:其实就是一个容器(集合),存放数据库连接的容器。:数据库连接池实现技术,由阿里巴巴提供的。一般我们不去实现它,有数据库厂商来实现。
2022-11-04 10:41:58
223
原创 1. Win 10 :在此处打开命令窗口
1.在此处打开CMD命令行窗口在当前目录下打开命令窗口步骤:- `alt+d`定位到资源管理器地址栏。 - 输入`cmd`后回车截图讲解①:②:③:2.在此处打开Windows Powershell在需要操作的文件夹下按住Shift+鼠标右键,选择:在此处打开Powershell窗口,即可;选择:在此处打开Powershell窗口,即可;...
2022-01-12 16:44:08
3207
原创 3.模块化
1.模块的基本使用,模块的基础使用步骤创建模块(按照以前的讲解方式创建模块,创建包,创建类,定义方法)为了体现模块的使用,创建两个模块:myOne和myTwo在模块的src目录下新建一个名为module-info.java的描述性文件,该文件专门定义模块名,访问权限,模块依赖等信息描述性文件中使用模块导出和模块依赖来进行配置并使用。模块中所有未导出的包都是模块私有的,他们是不能在模块之外被访问的在myOne这个模块下的描述性文件中配置模块导出模块导处格式:exports
2021-12-28 14:40:40
116
原创 2.Java-反射
1.反射概述Java反射机制:是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增加程序的灵活性,程序不用在编译期就完成确定,在运行期任然可以扩展。2.获取Class类的对象想通过反射去使用一个类,首先需要获取到该类的字节码文件对象,也就是类型为Class类型的对象三种获取Class类型的对象使用类的class()属性来获取该类对应的Class对象。举例:Student.class将会返回Student调用对象的getCl
2021-12-24 10:46:17
440
原创 1.类加载器
1. 类加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过类的加载,类的连接,类的初始化这三个步骤来对类进行初始化。如果不出意外,JVM将会连续完成这三个步骤,所有有时也把这三个步骤统称为类加载活类初始化。类的加载就是指将class文件读入内存,并为之创建一个java.lang.Class任何类被使用时,系统都会为之创建一个java.lang.Class对象类的连接验证阶段:用于检验被加载的类是否有正确的内部结构,并和其他类协调一致。准备阶段:负责为类的类变量分配
2021-12-22 09:27:28
111
原创 5.Stream流
1.Stream流1.体验Stream流需求:按照下面的要求完成集合的创建和遍历创建一个集合,存储多个字符串元素把集合中所有以“张”开头的元素存储到一个新的集合把“张”开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集合代码:package Study05;import java.util.ArrayList;/*需求:按照下面的要求完成集合的创建和遍历- 创建一个集合,存储多个字符串元素- 把集合中所有以“张”开头的元素存储到一个新的集合- 把“张”开头的
2021-12-21 14:45:37
424
原创 4.函数式接口
1. 函数式接口概述函数式接口:有且仅有一个抽象方法的接口Java中的函数式编程体现的就是Lambda表达式,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利的进行推导。如何检测一个接口是不是函数式接口:@FunctionalInterface放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败注意:自己定义函数式接口时@FunctionalInterface是可选的,就算不写这个注解,只要保证满足函
2021-12-20 15:48:57
357
原创 3.方法引用
1.体验方法引用在Lambda中所指定的操作方案,已经有地方存在相同的方案时,可以通过方法引用来使用已经存在的方案。代码:接口package Study01;public interface Printable { void printString(String s);}测试类package Study01;/*需求- 定义一个接口(Printable):里面定义一个抽象方法:void printString(String s);- 定义一个测试类(Printab
2021-12-13 16:30:50
136
原创 2.接口新特性
1.接口组成更新概述接口的组成常量public static final抽象方法public abstract默认方法(Java 8)静态方法(Java 8)私有方法(Java 9)2.接口中的默认方法接口中默认方法的定义格式:格式:public default 返回值类型 方法名(参数列表){ }范例:public default void show3(){ }接口中默认方法的注意事项默认方法不是抽象方法,所以不强制重写。但是可以被
2021-12-09 14:26:45
387
原创 1.Lambda表达式
1.体验Lambda表达式函数式编程思想概述函数式思想则尽量忽略面向对象的复杂语法:“强调做什么,而不是以什么形式去做”Lambda表达式就是函数式思想的体现。体验Lambda表达式需求:启动一个线程,在控制台输出一句话:多线程程序启动了方式一:定义一个类MyRunnable实现Runnable接口,重写run()方法创建MyRunnable类的对象创建Thread类的对象,把MyRunnable的对象作为构造参数传递启动线程方式二:匿名内部类的方式改进方式三:
2021-12-08 15:37:05
288
原创 2-4网络编程-TCP通信练习
1.练习1:客户端:发送数据,接收服务器反馈服务器:接收数据,给出反馈代码:客户端package Study12;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/*客户端:发送数据,接收服务器反馈*/public class ClientDemo { public static void main(St
2021-12-07 16:15:09
1440
原创 2-3网络编程-TCP通信
1.TCP客户端发送数据TCP通信原理TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。Java为客户端提供了Socket类,为服务器端提供了ServerSocket类TCP发送数据发送数据的步骤创建客户端的Socket对象(
2021-12-07 16:14:28
151
原创 2-2网络编程-UDP通信
1.UDP发送数据UDP通信原理UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收对象;因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念。Java提供了DatagramSocket类作为基于UDP协议的SocketUDP发送数据发送数据的步骤创建发送端的Socket对象(DatagramSocket)DatagramSocket()创建数据,并把数据打包DatagramPacket(byt
2021-12-07 09:19:55
312
原创 2-1网络编程概述
1.网络编程概述计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程在网络通信协议下,实现网络互连的不同计算机上运行的程序间可以进行数据交换。2.网络编程三要素IP地址要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送的计算机,而IP地址就是这个标识号。也就是设备的标识。端口
2021-12-07 09:18:34
592
原创 1.多线程
1.线程和进程进程进程:是正在运行的程序是系统进行资源分配和调用的独立单位每一个进程都有它自己的内存空间和系统资源线程线程:是进程中的单个顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序2.多线程的实现方式方式1:继承Thread类定义一个类MyThread继承Thread类在MyThread类中重写run()方法创建MyThread类的对象启动线程两个小问题为
2021-12-03 15:55:42
134
原创 8.Properties类
1.Properties1.Propertiesg概述:是一个Map体系的集合类Properties可以保存到流中或从流中加载2.练习:Properties作为Map集合使用package Study09;import java.util.Properties;import java.util.Set;/*Properties作为Map集合使用*/public class PropertiesDemo { public static void main(String[] a
2021-12-01 11:04:03
3281
原创 7.对象序列化流
1.概述对象序列化:就是将对象保存到磁盘中,或者在网络中传输对象这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象的类型,对象的数据和对象中存储的属性等信息字节序列写到文件之后,相当于文件中持久保存了一个对象的信息反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。要实现序列化和反序列化就要使用对象序列化流和对象反序列化流:对象序列化流:ObjectOutputStream对象反序列化流:ObjectInputStream2. 对象序列化流对象序列化流:Ob
2021-11-30 15:27:06
373
原创 6.标准流&打印流
1.案例:集合到文件(数据排序改进版)需求:键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩)。要求按照成绩总分从高到低写入文本文件格式:姓名,语文成绩,数学成绩,英语成绩举例:迪丽热巴,99,98,100思路:定义学生类创建TreeSet集合,通过比较器排序进行排序键盘录入学生数据创建学生对象,将键盘录入的数据对应赋值给学生对象的成员变量把学生对象添加到TreeSet集合创建字符缓冲输出流对象遍历集合,得到每一个学生对象把学生对象的数据拼接成指定格式的字符串调用字符缓冲
2021-11-30 11:36:56
406
原创 5.IO练习
1.IO小结字节流小结:小结:字节流可以复制任意文件数据,有4种方式,一般采取字节缓冲流一次读写一个字节数组的方式。字符流小结:小结:字符流只能复制文本数据,有5种方式,一般采用字符缓冲流的特有功能。2.案例:集合到文件需求:把ArrayList集合中的字符串数据写入到文本文件。要求:每一个字符串元素作为文件的一行数据。思路:创建ArrayList集合往集合中存储字符串元素创建字符缓冲输出流对象遍历集合,得到每一个字符串数据调用字符缓冲输出流对象的方法写数据释放资源
2021-11-23 17:31:54
510
2
原创 4.IO字符流
1.字符流由于字节流操作中文不是特别方便,所以Java就提供字符流字符流=字节流+编码表用字节流复制文本文件时,文本文件也会有中文,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文呢?汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数2.编码表基础知识计算机中存储的信息都是用二进制数表示的;我们在屏幕上看到的英文,汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码。反之,将存储在计算机中的二进制数按照某种规则解析出来,称为解
2021-11-23 09:59:12
199
2
原创 3.IO字节流
1. IO流概述和分类IO流概述IO:输入/输出(Input/Output)流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流本质是数据传输IO流就是用来处理设备间数据传输问题的常见的应用:文件复制;文件上传;文件下载等IO流的分类按照数据的流向输入流:读数据输出流:写数据按照数据类型来分字节流字节输入流;字节输出流字符流字符输入流;字符输出流一般情况下,IO流的分类是按照数据类型来分的字节流和字符
2021-11-10 13:56:35
85
原创 2.Java递归
1.递归递归概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象。package Study02;/*递归概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象。*/public class DIGUIdemo { public static void main(String[] args) { /*回顾不死神兔问题,求第20个月兔子的对数 每个月得兔子对数:1,1,2,3,5,8……*/ int []arr = new in
2021-11-03 14:10:08
149
原创 1.File类
1. File类概述和构造方法File:它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。他可以是存在的,也可以是不存在的额。将来是要通过具体的操作把这个路径的内容转换为具体存在的。方法名说明File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建新的File实例File(String parent,String child)从父路径名字符串和
2021-11-02 20:52:32
100
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人