- 博客(16)
- 收藏
- 关注
原创 mybatis封装数据到list判空条件“list==null || list.size()==0“
看代码的时候好奇,mybatis就算查不到数据,列表返回的也是空列表,明明只用判断列表为空就可以了,为什么一定要判断它为null?网上搜了一下资料蛮有意思的,分享一下…因此,对于上述代码,如果 shoppingCartMapper.list(shoppingCart) 没有查询到数据,list 会是一个空的 ArrayList,而不是 null。
2024-04-06 09:01:15
545
原创 Maven 常见53个标签
:定义Maven项目中用到的属性。:项目构建的特定设置集。:定义项目模块化,用于多模块项目。:定义父项目的坐标。:用于集中依赖版本管理的地方。:配置项目的分发管理,如部署到仓库的信息。Maven的全局配置文件settings.xmlLocal Repository:定义了Maven本地仓库的位置。如果没有配置,默认在用户的home目录下的目录中。例如:Mirror Settings:是一个容器,包含了一个或多个元素。:定义了一个镜像仓库,用于提供另一个远程仓库的镜像,提高下载速度或者为了
2024-03-20 23:30:23
1693
原创 JavaWeb 令牌技术-JWT令牌
定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的简洁:是指jwt就是一个简单的字符串。可以在请求参数或者是请求头当中直接传递。自包含:可以根据自身的需求在jwt 令牌中存储自定义的数据内容。如:可以直接在jwt令牌中存储用户的相关信息。简单来讲,jwt就是将原始的json数据格式进行了安全的封装,这样就可以直接基于jwt在通信双方安全的进行信息传输了。
2024-03-17 15:27:11
1000
2
原创 JavaWeb 服务器端会话跟踪技术-Session
服务器端:Session 的底层基于 Cookie 来实现的。优缺点服务器集群环境为何无法使用Session?:某台服务器挂了,整个应用都没法访问:将前端发起的请求均匀的分发给后面的服务器【案例】 在现在的企业项目开发当中,最终部署的时候都是以集群的形式来进行部署,也就是同一个项目它会部署多份。比如这个项目我们现在就部署了 3 份。 此时假如我们通过 session 来进行会话跟踪。。用户打开浏览器要进行登录操作,此时会发起登录请求。
2024-03-17 15:00:43
996
原创 javaWeb 客户端会话跟踪技术-Cookie
客户端浏览器:在浏览器发起请求来请求服务器的时候,在来设置一个cookie。:存储用户相关的一些数据信息。如在 cookie 当中来存储当前登录用户的用户名,用户的ID。的将 cookie 响应给浏览器,浏览器接收到响应回来 的 cookie 之后,会的将 cookie 的值存储在浏览器本地。接下来在后续的每一次请求当中, 都会将浏览器本地所存储的 cookie地携带到服务端接下来在服务端我们就可以获取到 cookie 的值。
2024-03-17 14:29:14
1881
原创 Spring 拦截器Interceptor
实现HandlerInterceptor接口,并重写其所有方法//自定义拦截器@Component//目标资源方法执行前执行。返回true:放行 返回false:不放行@Override//true表示放行//目标资源方法执行后执行@Override//视图渲染完毕后执行,最后执行@Override【注意】preHandle方法:目标资源方法执行前执行。返回true:放行 返回false:不放行postHandle方法:目标资源方法执行后执行。
2024-03-17 11:22:45
2544
原创 JavaWeb Filter
定义一个类,实现Filter 接口,并重写其所有方法//配置过滤器要拦截的请求路径( /* 表示拦截浏览器的所有请求 )//定义一个类,实现一个标准的Filter过滤器的接口@Override //初始化方法, 只调用一次System.out.println("init 初始化方法执行了");@Override //拦截到请求之后调用, 调用多次System.out.println("Demo 拦截到了请求...放行前逻辑");//放行@Override //销毁方法, 只调用一次。
2024-03-17 10:56:39
835
原创 Spring @Bean与@Configuration
创建一个消息服务(MessageService)和一个消息消费者(Consumer),以此来展示依赖注入的工作流程。注解的方法,用于定义实例化Bean的逻辑。Spring容器在启动时会自动扫描这些配置类,并根据它们来生成和管理相应的Bean。注解标记在方法上,用来声明一个Bean,方法的返回值就是要注入的Bean实例。注解标记在类上,表明该类是一个配置类,这个类可以包含一个或多个。为了运行这个Spring应用并测试Bean的注入,创建一个名为。注解定义的Bean注入是成功的。的启动类,使用Spring的。
2024-03-17 10:01:18
617
原创 MySQL SELECT与SHOW的区别与联系
是你想从表中选择的数据列。table_name是你想从中选择数据的表。WHERE子句是可选的,用于设置筛选条件。特性SELECTSHOW主要用途查询表中的数据显示数据库、表、列的信息或服务器状态和变量等应用范围针对数据行和列的操作针对数据库元数据及配置信息的操作返回数据可以是任何表中的数据,支持条件过滤、排序等操作通常返回数据库、表结构或服务器状态等信息自定义性高,可以通过WHERE、JOIN等子句精细控制查询结果。
2024-03-16 23:56:55
923
1
原创 MySQL 查询优化之EXPLAIN
EXPLAIN命令可以用于任何SELECT语句,展示MySQL如何使用索引来处理SELECT语句以及连接表。它显示了MySQL如何执行查询,包括如何表连接以及选择索引的情况。
2024-03-16 22:25:41
397
原创 MySQL 性能分析之Profile
MySQL提供了一个非常有用的诊断工具,称为“Profile”,用于分析SQL语句的执行情况,帮助开发者优化查询。Profile可以给出查询执行的详细信息,比如每个阶段花费的时间等。
2024-03-16 22:16:30
942
原创 MySQL 索引设计原则:降低主键的长度
想象一下,数据库是一个巨大的图书馆,而每本书代表了数据库中的一条数据。这个图书馆的书架被划分成了许多小格子,每个格子就像是数据库中的一页。现在,如果我们的书(数据)变得更薄(主键更短),我们就可以在每个格子里放更多的书。这样,当你来图书馆找一本特定的书时,你需要检查的格子数就会减少,因为每个格子里能放更多书,找书的速度自然就快了。:就好比每个格子能放更多薄薄的书,你找书时就不需要走那么多的格子了。这样一来,你找到想要的书的速度就提高了,因为你需要检查的格子少了。:假设这个图书馆不仅大,而且有好几层楼。
2024-03-16 14:56:44
445
原创 MySQL 页合并
触发条件:当InnoDB中的数据被删除,导致某些页的数据密度低于设定阈值(例如,页内数据量低于页容量的50%)时,页合并操作可能会被触发。查找邻近页:InnoDB存储引擎会检查当前页的前一个或后一个页,判断这些页是否也是半满的,如果是,则它们是合并的候选对象。评估合并可行性:系统会评估将这些页合并后的总数据量是否能够适合存放在单个页中。如果可以,就继续合并操作;如果合并后的数据量超过了一页的容量,那么合并操作不会发生。执行合并。
2024-03-16 14:28:01
474
原创 MySQL 页分裂
插入前的检查当一个插入操作被发起,首先,InnoDB会定位到要插入记录的位置。这通常涉及到B+树索引的搜索。在找到插入点后,InnoDB检查目标页是否有足够空间容纳新记录。这一步是通过比较页内剩余空间和新记录大小来完成的。判断是否需要页分裂如果页内有足够空间,则直接插入记录,无需页分裂。如果没有足够空间,InnoDB决定进行页分裂。执行页分裂创建新页:系统分配一个新的页,这个页的数据结构与被分裂的页相同。记录的迁移和分配:选择一部分记录从原页迁移到新页。
2024-03-16 13:46:31
2899
原创 MySQL大批量插入数据
可以执行如下指令,将数据脚本文件中的数据加载到表结构中:指令/参数 描述 启动MySQL客户端的命令,用于连接到MySQL服务器。 允许客户端使用 语句加载本地文件到服务器上的数据库表中。 指定登录MySQL的用户名为 。 指示登录时需要密码,执行命令后系统将提示输入密码。 在MySQL服务器上设置全局系统变量 的值为 ,开启从本地文件加载数据的功能。 SQL命令,用于将本地文件数据加载到数据库表中。 指定要
2024-03-16 11:28:17
838
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人