- 博客(110)
- 收藏
- 关注
原创 OSI与TCP/IP各层功能详解
由于 TCP 要提供可靠的,面向连接的传输服务(TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源),这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这样,数据链路层在收到一个帧后,就可从中提出数据部分,上交给网络层。在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。
2025-08-30 10:32:17
1149
原创 消息队列核心技术解析与应用场景
通过在生产者(消息发送方)和消费者(消息接收方)之间建立 “消息存储通道”,实现两者的解耦 —— 生产者无需等待消费者即时处理,只需将消息发送到队列,消费者可在合适时机从队列中获取并处理消息,支持应用程序在不同时间点、不同系统间安全高效地传递数据。跨服务操作要么全部成功(下单成功且库存扣减成功),要么全部失败(下单失败或库存扣减失败,均回滚),避免 “下单成功但库存未扣减”(超卖)或 “库存扣减成功但下单失败”(库存浪费)。
2025-08-30 10:26:39
885
原创 Java基础的128陷阱
128陷阱:数值在-128-127之间的数值都存储在有一个catch数组中,当该数组相当于一个缓存,当我们在-128-127之间进行自动装箱的时候,我们就直接返回该值在数组当中的地址,所以在-128-127之间的数值用==进行比较是相等的。而不在这个区间的数,需要新开辟一个内存空间,所以不相等。Integer里面有一个valueOf的方法,当在low和high的范围中就会返回这个内容,但是不在这个范围内就会返回一个new的Integer。当运行这个代码之后第一个输出为true,第二个输出为false。
2025-08-18 19:46:22
218
原创 SpringBoot项目部署
注意:nginx的解压位置和编译之后运行的位置不一样,下面这个是解压的位置(/usr/src/nginx/nginx-1.23.3/)mysql编译之后的数据库的库保存的路径为/var/lib/mysql/(可能根据安装不一样,路径也会不一样)我们要修改/usr/local/nginx/conf/下的nginx.conf使其实现代理的功能。将打包好的前端页面放在/usr/local/nginx/html/路径的下面。而编译之后的位置在:/usr/local/nginx/的位置下面。
2025-08-12 21:17:18
823
原创 智慧社区门禁管理
然后根据这张人脸去数据库查询所属小区和当前选择的小区进行比对,查看当前人脸成员是否为小区成员;最后将数据存入出入登记表(in_out_record)中,判断条件为查看登记表中数据的outTime出时间是否为空,若为空,当前居民进小区;本系统提供了访客记录搜索和查询、访客记录添加、访客记录修改、访客记录删除、根据id查询访客记录的功能,实现思路和小区管理一样,页面如下。①查询出所有的小区信息,下拉列表显示,用于后续判断人脸信息是否与所选小区匹配。在Mapper接口中写入对应的方法。对应的封装的List代码。
2025-08-06 09:50:12
384
原创 智慧社区构建——1
这个数据库设计了一个社区管理系统的基础结构,主要功能包括:小区信息管理摄像头设备管理人员进出记录管理系统操作日志记录预发布环境是介于开发环境(Development)和生产环境(Production)模拟生产环境的配置和数据(如连接接近生产的数据库、使用真实的第三方服务接口)。用于最终测试(如功能验证、性能测试、兼容性测试),确保代码在生产环境发布前没有明显问题。避免直接将开发完成的代码部署到生产环境,降低发布风险。
2025-07-29 22:37:10
862
原创 MyBatis-Plus中代码生成器内容详解
MyBatis-Plus 全新代码生成器在继承原有功能的基础上,引入了更加灵活和高效的 builder 模式,使得开发者能够快速生成符合需求的代码,同时保持代码的优雅和整洁。这个新特性旨在进一步提升开发效率,减少重复劳动,让开发者能够更加专注于业务逻辑的实现。MyBatis-Plus 代码生成器支持自定义模板,如 DTO (Data Transfer Object) 和 VO (Value Object) 等。builder.author("abc") // 设置作者。
2025-07-29 13:21:41
1262
原创 MyBatis-Plus中条件构造器的方法和使用
方法是 MyBatis-Plus 中用于构建查询条件的高级方法之一,它允许你直接在查询的最后添加一个 SQL 片段,而不受 MyBatis-Plus 的查询优化规则影响。通过指定一个或多个字段以及排序方向(升序或降序),方法是 MyBatis-Plus 中用于构建查询条件的基本方法之一,它用于设置单个字段的 NOT IN 条件,即字段的值不在给定的集合中。方法是 MyBatis-Plus 中用于构建查询条件的基本方法之一,它用于设置单个字段的 IN 条件,即字段的值在给定的集合中。通过指定一个或多个字段,
2025-07-29 13:21:16
1062
原创 MyBatis-Plus3
这是一个抽象基类,提供了所有 Wrapper 类共有的方法和属性。它定义了条件构造的基本逻辑,包括字段(column)、值(value)、操作符(condition)等。所有的 QueryWrapper、UpdateWrapper、LambdaQueryWrapper 和 LambdaUpdateWrapper 都继承自 AbstractWrapper。
2025-07-29 13:21:03
1195
原创 MyBatis-Puls2
IService 接口中的方法命名遵循了一定的规范,如 get 用于查询单行,remove 用于删除,list 用于查询集合,page 用于分页查询,这样可以避免与 Mapper 层的方法混淆。但不管怎样,当看到表的数据量达到千万级别时,作为架构师就要警觉起来,因为这很可能是架构的性。公布的分布式主键生成算法,它能够保证不同表的主键的不重复性,以及相同表的。若实体类中的属性使用的是驼峰命名风格,而表中的字段使用的是下划线命名风格。在开发的过程中,我们经常遇到以上的问题,即实体类所对应的表都有固。
2025-07-29 12:50:13
715
原创 MyBatis-Plus
BaseMapper 是 Mybatis-Plus 提供的一个通用 Mapper 接口,它封装了一系列常用的数据库操作方法,包括增、删、改、查等。通过继承 BaseMapper,开发者可以快速地对数据库进行操作,而无需编写繁琐的 SQL 语句。提示泛型T为任意实体对象参数为任意类型主键不推荐使用复合主键约定每一张表都有自己的唯一id主键对象Wrapper为条件构造器。
2025-07-28 09:40:36
1092
原创 Springboot数据层开发
Springboot中提供了JdbcTemplateAutoConfiguration的自动配置。我们同样可以在mybatis的接口上不加@Mapper注解,通过扫描器注解来扫描。在默认情况下, 数据库连接可以使用DataSource池进行自动配置。让我们使用yaml方式配置,创建application.yaml。在application.yaml中配置mybatis的信息。引入jdbc的依赖和springboot的应用场景。Mapper接口存放在cn.tx.mapper下。4)创建Mapper。
2025-07-28 09:40:26
705
原创 SpringBoot整合SpringMVC
SpringBoot的官方整合文档学习springmvc和springboot的自动配置我们必须对springmvc的组件足够了解,起码知道怎么用。Springmvc的组件基本都被springboot来做了自动的配置。
2025-07-22 17:25:58
940
原创 SpringBoot模板引擎
JSPVelocityFreemarkerThymeleafSpringBoot推荐的Thymeleaf;语法更简单,功能更强大;二、使用Thymeleaf1.引入依赖在pom.xml中引入从spring父文件中能看到Springboot2.0.1所使用的thymeleaf版本是3.0.9springBoot启动的时候会自动配置从ThymeleafAutoConfiguration的源代码中我们可以得知ThymeleafProperties中配置了Thymeleaf的规则。
2025-07-22 10:12:09
913
原创 GitLab使用
认证完成之后,就能够拉取了(可能在GitHub上面是的分支名是main分支)如果远程分支名为main而本地分支为master可以使用下面的指令进行推送。在拉取的过程中可能会让输入账号和密码,是你登录GitLab的用户名和密码。保证GitLab已经安装成功,如果没有可以看。进入之后点击New Project。与远程库建立联系,使用下面的代码。之后就能够在远程库里面看到项目了。使用下面代码让文件进行初始化。先将远程库中的内容拉取下来。填写对应的内容创建就好了。之后将自己的代码推送上去。
2025-07-21 09:31:53
693
原创 SpringBoot配置文件解析
为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。在application.properties配置application-dev.properties。高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。指定的条件成立,才给容器中添加组件,配置里面的所有内容才生效;默认使用application.properties的配置;类都是容器中的一个组件,都加入到容器中;
2025-07-21 09:31:43
1343
原创 Git的多工具使用和团队协作
Gitk 是 Git 自带的图形化工具,用于查看提交历史。在仓库路径下输入gitk我们在界面上可以看到提交的流程。包括分支的合并。同时可以做分支管理和标签管理就能够在这个里面进行之前的命令行的操作。
2025-07-20 11:06:55
328
原创 云服务器GitLab下载
在使用MobaXterm在云服务器上面下载gitlab时因为自己的云服务器的环境配置问题导致缺少了python的依赖我的云服务器的环境是OpenCloudOS,使用CentOS的话会更简便直接在MobaXterm上使用下面指令解压gitlab的包时出现了错误这个错误是在 OpenCloudOS 9 系统上安装 GitLab CE 10.8.4 时,出现了包依赖方面的问题。具体而言,GitLab CE 10.8.4 这个版本是基于 CentOS 7 构建的,它需要这个包。
2025-07-20 08:40:53
1074
原创 在若依中使用支付宝沙箱支付
1.1 整体架构支付宝支付系统采用 “前端请求→后端处理→支付宝交互→异步通知” 的架构模式:前端:发起支付请求(网页跳转或扫码)后端:生成支付参数,调用支付宝 API支付宝:处理支付请求,返回支付页面或二维码异步通知:支付结果通过回调 URL 通知商户系统2. 支付流程步骤商户系统创建订单:用户下单后,系统生成唯一订单 ID调用支付接口:后端根据订单信息调用支付宝支付 API生成支付页面 / 二维码:支付宝返回 HTML 表单或二维码链接。
2025-07-19 09:27:03
1451
原创 git版本控制3
除了可以在项目中定义.gitignore文件外,还可以设置全局的.gitignore文件来管理所有Git项目的行为。这种方式在不同的项目开发者之间是不共享的,是属于项目之上Git应用级别的行为。可以在任意目录下创建相应的.gitignore文件,然后再使用以下命令配置Git。
2025-07-18 09:32:49
1203
原创 git版本控制2
仓库级别 local 【优先级最高】(多个项目,不同的人做不同的项目都使用一个设备)2、用户级别 global【优先级次之】(个人使用)3、系统级别 system【优先级最低】git仓库级别对应的配置文件是当前仓库下的git用户级别对应的配置文件是用户宿主目录下的git系统级别对应的配置文件是git安装目录下的当然我们可以在cmd命令提示符中输入以下查看配置信息。
2025-07-17 10:25:13
1174
原创 git版本控制1
Git是目前世界上最先进的的分布式控制系统(没有之一)。很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!
2025-07-17 09:44:29
773
原创 0715牛客网MySQL题
维护参照完整性约束的策略:当删除被参照表的一个元组造成了与参照表的不一致,则删除参照表中的所有造成不一致的元组、对于任何违反了参照完整性约束的数据更新,系统一概拒绝执行、当删除或修改被参照表的一个元组造成了不一致,则将参照表中的所有造成和不一致的元组的对应属性设置为空值。CROSS JOIN语法错误,应该在JOIN后使用ON,而不是在CROSS JOIN中使用ON,因为CROSS JOIN不允许ON条件,会导致语法错误。Stuff():用于删除指定长度的字符,并在删除的位置插入新的字符;
2025-07-15 11:25:35
429
原创 Swagger的使用
输入想要添加的用户信息,但是id不要加将1删掉,因为添加不加id,之后点击Execute。输入想要修改的用户id和修改的信息字段,其他字段要是不进行修改就删除1。输入信息,输入完信息点击,如果只想用一个查,其他的信息中的1要删除掉。必须加example = "1",否则会报错,因为默认值为null。注意,我们的springboot版本不能太高,否则无法导入成功。输入想要删除的用户id然后点击Execute。点击之后看下面的信息是否有信息和200。启动项目之后在浏览器的控制台输入。以上两个注解需要同时使用。
2025-07-13 14:36:46
444
原创 SpringBoot基础实现
name和sex为要新增的用户姓名和用户性别,就能够添加对应的用户。SwaggerConfig(测试接口的工具),浏览器控制台输入。,id=为要删除的用户id,就能够删除对应的用户。,能够看到数据库中loginuser表中的数据。在service中创建对应的接口和实现类。创建对应的mapper中sql语句的编写。,能够看到数据库中person表中的数据。启动项目之后在浏览器的控制台输入。创建数据库中的实体类信息。在启动类中编写扫面的注解。在浏览器的控制台输入。在浏览器的控制台输入。在浏览器的控制台输入。
2025-07-13 14:17:56
248
原创 SpringBoot项目基础配置
在pom.xml文件中,可以讲url及以下的东西删除掉,然后修改爆红的version,如果版本过高的话会出现问题。可以查看一下下面的文件代码是否报错,如果报错可以删除掉这个test的目录(报错是和版本有关),不会影响到我们的项目。application.properties这个文件可以放着不用动,也不用往里面加东西。之后修改一下组id和自己的项目名称(注意项目名称的命名规范),type选择Maven。配置完成之后启动项目,看到下面的样子就说明启动成功了。然后在些项目的目录下创建需要的软件包。
2025-07-12 17:26:11
231
原创 MySQL牛客网练习0712
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。有关tablespace和datafile之间的关系的描述:一个tablespace确实可以包含一个或多个datafile,这种一对多的关系使得tablespace可以更灵活地管理存储空间。2、如果两个表中存储的信息相互关联,并且通过适当的约束和关联来确保在修改时保持一致和有效,那么可以说这两个表中的数据具备完整性。
2025-07-12 09:54:18
270
原创 MySQL牛客网练习
游标是关系数据库中用于逐行处理查询结果的一种机制,它提供了逐条处理SQL查询结果的方法。通过游标,可以将SQL查询结果集转换成C语言可以逐条处理的形式,实现两种不同处理模式的桥接。因为HASH索引中的数据并不是按照索引值顺序存储的,而是根据HASH值离散分布的,所以无法用于排序。因为默认值是指当用户没有在记录中输入该字段的值时,系统将自动填入一个预设的值。这是因为HASH索引是根据索引列的值计算HASH值,只能进行精确匹配查询。关系数据模型的三个组成部分:关系的完整性约束、关系的数据操纵、关系的数据结构。
2025-07-12 09:53:34
410
原创 MyBatis二(下)
MyBatis 自身提供了一些缓存实现,像 LRU(最近最少使用)、FIFO(先进先出)等,同时也支持与第三方缓存框架整合,例如 Ehcache、Redis。实现在总配置文件中开启二级缓存。
2025-07-12 09:20:52
796
原创 MyBatis二(上)
如果想查询 select u.*,a.money from user u left join account a on u.id = a.uid 语句的内容。需求的SQL语句:select * from user where id = 1 or id = 2 or id = 3。需求:查询的数据中包含account所有的字段,再包含用户的名称和地址。之前做过拼接SQL语句查询条件的查询,需要动态的拼接SQL语句。在AccountMapper接口中编写查询的方法。在User类中添加List的属性。
2025-07-12 08:51:40
921
原创 MyBatis一(下)
把数据库的信息定义property标签中的方式-- 配置环境们 -->-- 配置具体的环境 -->-- 配置事务管理类型 -->-- 配置是否需要使用连接池,POOLED使用,UNPOOLED不使用 --><mappers></mappers>在项目中定义jdbc.properties属性文件,存储数据库相关的信息,统一管理jdbc.properties属性文件SqlMapConfig.xml的配置文件-- 配置环境们 -->-- 配置具体的环境 -->-- 配置事务管理类型 -->
2025-07-11 21:33:38
858
原创 MyBatis一(上)
MyBatis是一个优秀的基于Java的持久层框架,内部对JDBC做了封装,使开发者只需要关注SQL语句,而不用关注JDBC的代码,使开发变得更加的简单。MyBatis通过XML或者注解的方式将要执行的各种Statement对象配置起来,通过Java对象和statement中SQL的动态参数进行映射,并最终执行SQL语句。执行SQL后,最终将结果已Java对象返回。采用了ORM的思想。
2025-07-11 21:25:54
497
原创 SpringAOP下
什么模板技术:Spring框架中提供了很多持久层的模板类来简化编程,使用模板 类编写程序会变的简单template模板 都是Spring框架提供XxxTemplate 提供了JDBC模板,Spring框架提供的 JdbcTemplate类,Connection表示连接,管理事务StatementResultSet。
2025-07-11 21:16:13
826
原创 SpringAOP上
AOP技术:面向切面编程AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构AOP最早由AOP联盟的组织提出的,制定了一套规范.Spring将AOP思想引入到 框架中,必须遵守AOP联盟的规范通过预编译方式或者运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要 内容,是函数式编程的一种衍生范型。
2025-07-11 20:46:08
322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅