- 博客(83)
- 收藏
- 关注
原创 数据库中join连接方式
JOIN 类型描述核心用途INNER JOIN取两个表的交集查找相关联的、完整的数据LEFT JOIN保留左表全部,匹配右表查找“全部...及其对应的...”RIGHT JOIN保留右表全部,匹配左表与 LEFT JOIN 类似,但主表是右边FULL JOIN取两个表的并集查看两个表所有记录的完整情况CROSS JOIN生成笛卡尔积生成所有组合,慎用SELF JOIN表与自己连接处理树状或层次结构数据。
2025-10-11 11:24:49
590
原创 数据库中的视图
核心定义:视图是一个虚拟表。它看起来和行为上都像一个真实的表,有行有列,可以像表一样被查询、过滤、连接。但是,视图并不在数据库中以存储数据的形式存在。本质:视图的本质是一条被命名的、存储在数据库中的 SQL 查询语句(SELECT)。当你使用视图时,数据库引擎会执行这条预先存储的查询,并返回结果集,这个结果集就是你所看到的“虚拟表”。一个简单的比喻想象一下,公司的员工表中包含了所有信息:员工ID、姓名、部门、工资、电话号码、家庭住址等。真实表Employees。
2025-10-11 10:54:01
1114
原创 数据库触发器使用
是数据库中的一种特殊存储过程,它在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行。触发器主要用于维护数据完整性、实施业务规则和审计跟踪。
2025-10-10 12:38:59
497
原创 在达梦数据库中使用group by 命令报错问题
在开发的时候使用后端代码请求测试库中的数据报错,在将报错涉及到的表结构、数据从正式库迁移到测试库之后依然报同样的错误。
2025-08-12 12:42:16
498
原创 Java中的值传递
Java 中将实参传递给方法(或函数)的方式是值传递如果参数是基本类型的话,很简单,传递的就是基本类型的字面量值的拷贝,会创建副本。如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。t=O83A。
2024-10-20 16:59:13
765
原创 Java中的泛型
Java 泛型(Generics)是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如这行代码就指明了该ArrayList对象只能传入Person对象,如果传入其他类型的对象就会报错。并且,原生List返回类型是Object,需要手动转换类型才能使用,使用泛型后编译器自动转换。
2024-10-20 16:21:55
466
原创 抽象类和接口的共同点和区别
方法用于提供接口方法的默认实现,可以在实现类中被覆盖。这样就可以在不修改实现类的情况下向现有接口添加新功能,从而增强接口的扩展性和向后兼容性。方法通常用于定义一些通用的、与接口相关的工具方法,一般很少用。方法无法在实现类中被覆盖,只能通过接口名直接调用(方法可以用于在接口内部共享代码,不对外暴露。这些方法让接口的使用更加灵活。Java 9 允许在接口中使用。),类似于类中的静态方法。Java 8 引入的。Java 8 引入的。
2024-10-20 14:52:46
449
原创 控制反转(IOC)与依赖注入(DI)
在传统的应用程序中,如果一个对象需要依赖另一个对象,通常会直接在代码中创建这个依赖对象,从而导致对象之间紧密耦合。而在 IoC 容器中,应用程序的控制权被反转了,对象的创建和依赖关系由容器负责管理和维护,应用程序只需要关注自身的业务逻辑。Spring IOC 容器负责管理应用程序中的所有对象(bean),包括创建、销毁和维护它们之间的依赖关系。依赖注入是 IOC 的一种。,它通过将对象的依赖关系通过构造函数、setter 方法或字段注入到对象中,从而实现了对象之间的解耦和灵活性。
2024-09-15 21:18:53
359
原创 正则表达式
正则表达式以"/"开头,以"/"结尾,在这之间写正则表达式。“\”表示转义,对于一些特殊的字符,比如".",如果我们只是想要匹配"."这个字符,就需要在"."的前面加上"\"。
2024-06-20 16:18:11
1030
原创 使用Jmeter进行性能测试
HTTP请求默认值中的设置与HTTP请求中的相似,只是HTTP请求默认值中的属性值是作用在当前测试计划中的所有HTTP请求中,如果一个HTTP请求没有设置对应的属性,就会使用HTTP请求默认值中的属性值,如果设置了就是用自己设置的属性值。也可以在对应的线程组中配置对应的HTTP请求默认值。有时候,我们需要测试一个网站上面的很多URL路径,一个一个手动定义HTTP请求太麻烦,所以Jmeter提供了录制网站流量的操作,根据录制的用户操作,得到网站上面的URL请求。点击保存按钮,将测试计划保存到本地文件中。
2024-06-03 15:00:31
1419
原创 Java中的枚举(Enum)
枚举类除了可以实现接口外,还可以在枚举类中定义抽象方法,这样每个枚举的对象只要分别实现了此抽象方法即可。RED{public String getColor(){//枚举对象实现抽象方法return "红色";},GREEN{public String getColor(){//枚举对象实现抽象方法return "绿色";},BLUE{public String getColor(){//枚举对象实现抽象方法return "蓝色";//定义抽象方法。
2024-05-31 00:30:00
475
原创 高级用法
如果我们自己去用代码实现的话其实会非常的复杂,并且要求你对并发编程有足够的理解和认识。而如果我们使用Stream的话,我们只需要修改一个方法的调用就可以使用并行流来帮我们实现,从而提高效率。 即使我们操作的是整数小数,但是实际用的都是他们的包装类。JDK5中引入的自动装箱和自动拆箱让我们在使用对应的包装类时就好像使用基本数据类型一样方便。虽然这个时间消耗很下。但是在大量的数据不断的重复装箱拆箱的时候,你就不能无视这个时间损耗了。 我们之前用到的很多Stream的方法由于都使用了泛型。
2024-05-30 00:30:00
376
原创 方法引用
我们在使用lambda时不需要考虑什么时候用方法引用,用哪种方法引用,方法引用的格式是什么。我们只需要在写完lambda方法发现方法体只有一行代码,并且是方法的调用时使用快捷键尝试是否能够转换成方法引用即可。 我们在使用lambda时,如果方法体中只有一个方法的调用的话(包括构造方法),我们可以用方法引用进一步简化代码。注意,如果我们所重写的方法是没有参数的,调用的方法也是没有参数的也相当于符合以上规则。 当我们方法引用使用的多了慢慢的也可以直接写出方法引用。,这个时候我们就可以引用类的实例方法。
2024-05-29 00:30:00
591
2
原创 函数式接口
只有一个抽象方法的接口我们称之为函数接口。 JDK的函数式接口都加上了**@FunctionalInterface** 注解进行标识。但是无论是否加上该注解只要接口中只有一个抽象方法,都是函数式接口。
2024-05-28 00:30:00
912
原创 Optional
我们在编写代码的时候出现最多的就是空指针异常。所以在很多情况下我们需要做各种非空的判断。if(author!=null){ 尤其是对象中的属性还是一个对象的情况下。这种判断会更多。 而过多的判断语句会让我们的代码显得臃肿不堪。 所以在JDK8中引入了Optional,养成使用Optional的习惯后你可以写出更优雅的代码来避免空指针异常。 并且在很多函数式编程相关的API中也都用到了Optional,如果不会使用Optional也会对函数式编程的学习造成影响。
2024-05-27 17:26:24
1261
原创 线程池中的阻塞队列和拒接策略
在 Java 中,线程池使用包中的来管理线程。提供了几种不同类型的阻塞队列和拒绝策略,以便处理线程池中的任务调度和资源管理。
2024-05-26 19:04:24
1089
原创 关系型数据库和非关系型数据库的区别是什么?
非关系型数据库一般强调的是数据最终一致性,而没有像ACID一样强调数据的强一致性,从非关系型数据库中读到的有可能还是处于一个中间态的数据,因此如果业务对于数据的一致性要求很高,那么非关系型数据库并不一个很好的选择,非关系型数据库更多的偏向于OLAP(联机分析处理)场景,而关系型数据库更多偏向于OLTP(联机事务处理)场景。而NoSQL数据库是横向扩展的,非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。
2024-05-22 21:52:56
579
原创 Vue3中路由(router)的使用
然后在项目的router目录下创建index.js文件,在其中编写路由的具体代码,并导出。在App.vue文件的template标签中,定义router-view标签。在main.js中导入创建路由的js文件,并调用实例的use方法使用路由器。在script中进行跳转。
2024-05-21 00:30:00
421
原创 SpringSession原理简析
Session的原理Session是存在服务器的一种用来存放用户数据的类哈希表结构,当浏览器第一次发送请求的时候服务器会生成一个hashtable和一个sessionid,sessionid来唯一标识这个hashtable,响应的时候会通过一个响应头set-cookie返回给浏览器,浏览器再将这个sessionid存储在一个名为JESSIONID的cookie中。
2024-05-20 14:20:39
1757
原创 Vue3组件通信方式
在vue框架中事件分为两种:一种是原生的DOM事件,另外一种自定义事件。原生DOM事件可以让用户与网页进行交互,比如click、dbclick、change、mouseenter、mouseleave…自定义事件可以实现子组件给父组件传递数据自定义事件可以实现子组件给父组件传递数据.在项目中是比较常用的。比如在父组件内部给子组件(Event2)绑定一个自定义事件<template>//事件回调console.log("这是子组件传递给父组件的信息xxxxx")</script>
2024-05-19 21:26:33
1523
原创 Stream流
Java8的Stream使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合或数组进行链状流式的操作。可以更方便的让我们对集合或数组操作。
2024-05-18 00:30:00
1394
原创 Lambda表达式
Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。
2024-05-17 10:20:12
576
原创 Java中的锁
线程八锁,实际是总结出来也就是,上锁【类、实例】和线程执行方法【是否是同一个实例】的划分,而增加sleep是为了能够更好的展示效果,能够更好去理解线程。
2024-05-15 20:20:37
941
原创 Cookie和Session的区别
4、生命周期:Cookie可以设置过期时间,如果设置了过期时间,即使关闭浏览器,Cookie也会保存在本地硬盘中,直到过期时间到达才会被删除。5、数据类型:Cookie和Session都是key-value结构,但Cookie的value只能是字符串类型,而Session的value是object类型,可以存储更复杂的数据结构。而Session数据存储在服务器上,没有敏感信息泄漏的风险,安全性较高。1、存储位置:Cookie数据存放在客户的浏览器上,而Session数据放在服务器上。
2024-05-14 00:30:00
361
原创 Git的使用
工作区只能在一个分支工作,每个分支存放的文件或者资源是不一样的,就相当于不同的文件夹。当我们合并分支后,两个或者多个分支对同一个文件的同一个地方进行修改的时候(不是同一个地方是不会出现冲突的 ),此时git就不知道要取哪个分支修改的值,是取a分支修改的值,还是取b分支修改的值呢,此时就产生了冲突。克隆一般只会执行一次,就是在你进去公司的时候,别人提交了以后,我们不需要去克隆整个仓库,仓库是很大的,克隆也需要花很多时间,所以要去远程仓库中抓取我们要的版本信息,就是那些别人新增加的提交。
2024-05-13 00:30:00
1456
原创 SpringBoot中使用MongoDB
引入依赖在application.yml中写配资spring:data:mongodb:# 主机地址# 端口# 数据库名称启动项目,如果成功启动,说明基础配资没有问题。
2024-05-12 00:30:00
1161
原创 Mongodb中的索引
索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。如果查询存在适当的索引,MongoDB可以使用该索引限制必须检查的文档数。索引是特殊的数据结构,它以易于遍历的形式存储集合数据集的一小部分。索引存储特定字段或一组字段的值,按字段值排序。索引项的排序支持有效的相等匹配和基于范围的查询操作。
2024-05-11 00:30:00
2736
原创 Mongodb的基本操作
选择切换数据库:use articledb插入数据:db.comment.insert({bson数据})查询所有数据:db.comment.find();条件查询数据:db.comment.find({条件})查询符合条件的第一条记录:db.comment.findOne({条件})查询符合条件的前几条记录:db.comment.find({条件}).limit(条数) 查询符合条件的跳过的记录:db.comment.find({条件}).skip(条数)
2024-05-10 00:30:00
1156
原创 Mybatis中的缓存机制
MyBatis 中的缓存机制包括一级缓存(Local Cache)和二级缓存(Global Cache),用于提高查询性能和减少数据库访问次数。
2024-05-07 00:30:00
853
原创 Mybatis中的动态SQL
if标签可通过test属性中的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中的内容不会执行。在where后面添加一个恒成立条件1=1,这个恒成立条件并不会影响查询的结果这个1=1可以用来拼接and语句,例如:当empName为null时如果不加上恒成立条件,则SQL语句为,此时where会与and连用,SQL语句会报错如果加上一个恒成立条件,则SQL语句为,此时不报错,并且查询结果跟我们预想的也并无差别。
2024-05-06 09:38:51
757
原创 Integer中的缓存机制
所以这就解释了为什么a==b是true而c==d是fasle,当Integer值在[-128, 127]范围时,都是从缓存中拿的同一个对象,使用==比较地址自然相同,所以返回true;为什么明明都是同一个数字进行==比较,当数字等于127的时候,两个Integer类型的变量进行==比较是相同的,数字式128的时候就不同了呢?首先我们需要明确==和equals方法的区别,==比较两个对象的地址是否相同,equals比较两个对象的值是否相同。的时候就已经完成了,所以后面需要的时候直接拿的缓存中的对象。
2024-05-02 19:07:19
420
原创 布隆过滤器(Bloom Filter)
布隆过滤器(Bloom Filter)是一种空间利用效率极高的概率型数据结构,由 Burton Howard Bloom 在1970年提出。它主要用于判断一个元素是否可能属于某个集合,不支持直接获取集合中的所有元素。布隆过滤器的基本结构是一个固定长度的位数组和一组哈希函数。
2024-04-30 00:30:00
684
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅