自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 npm、nrm、nvm详解与应用

本文全面介绍了 npm、nrm 以及 nvm 这三个与 Node.js 开发密切相关的工具。

2024-03-24 16:34:25 1306

原创 Linux中,配置systemctl操作Nginx

在Linux中,配置systemctl命令操作Nginx,更方便的对Nginx进行相关操作

2024-03-10 23:35:52 1286 1

原创 Linux中防火墙相关操作

Linux中防火墙相关操作

2024-03-10 18:14:32 1092

原创 Docker安装

Docker安装

2024-02-22 16:19:56 337

原创 MySQL模糊查询通配符转义总结

MySQL模糊查询,对%、_的处理

2024-01-26 15:18:32 1334

原创 SpringBoot集成Swagger

1、导包<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency> <groupId>io.springfox</groupI

2021-12-22 15:02:45 520

原创 当mybatis where条件中使用in关键字出现的问题

一、出现的问题:1、查询时:Mybatis:Mysql:2、删除时:Mybatis:Mysql:通过分析查询、删除时的两种情况可知,相同的sql语句被执行后,mysql、mybatis的执行结果却不一致。原因: 通过分析可得,Mybatis查询、删除出现不符合预期的问题都是由Mybatis使用#{}替换变量值时导致的。#{}会把传入的数据都当成一个字符串来处理,会在传入的数据上面加一个双引号来处理。比如,select * from s_r.

2021-12-22 10:34:39 2598

原创 Mybatis中#{}和${}的区别

一、作用:替换变量值。二、含义不同:# 会把传入的数据都当成一个字符串来处理,会在传入的数据上面加一个双引号来处理。比如,select * from student where name = #{name},传入周杰伦,经处理,为 select * from student where name = "周杰伦"。而 $ 则是把传入的数据直接拼接在sql语句中,不会添加双引号。比如,select * from student where age= #{age},传入18,经处理,为

2021-12-22 08:51:02 404

原创 MyBatis代码生成器

1、依赖导入依赖<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency>插件<plugin> <!--My...

2021-12-21 17:36:20 737

原创 LC.77 组合

题目描述: 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例: 输⼊: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]思路: 对于给出的用例,要选出集合个数为2的所有组合,很容易想到的是双重for循环解决问题,集合个数...

2021-12-19 21:00:07 564

原创 LC.746 使用最小花费爬楼梯

题目描述:解法:classSolution{publicintminCostClimbingStairs(int[]cost){intn=cost.length;int[]dp=newint[n];dp[0]=cost[0];dp[1]=cost[1];for(inti=2;i<n;i++){dp...

2021-12-14 16:55:32 793

原创 为什么Java中只有值传递?

为什么Java中只有值传递?

2021-11-20 20:26:56 4756 2

原创 HTTPS加密原理

HTTP是未经加密的协议,其内容是以明文的方式传输的,也就是说,在传输过程中有可能被劫持、篡改,造成信息泄露等安全问题,所以我们需要安全的请求方式进行请求,也就是我们经常使用的HTTPS。 HTTPS并不是应用层中一个新的协议,仅仅是在 应用层 和 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。通常,HTTP 直接和 TCP 通信。当使用 SSL时,则演变成先和 SSL 通信,再由 SSL和 TCP 通信了。简言之,所谓 HTTPS,其实就是身披 SSL协议这层外壳的 HTTP。.

2021-11-16 15:47:59 1833

原创 微信小程序:动态控制class属性

一、需求: 点击一个选项,让其出现不同于其他选项的样式,比如选项文字的颜色变红。二、初步解决方案: 可以设置一个活跃选项的数据来记录选中选项的下标(默认为0),其次选中其他选项时可以通过点击事件获取到所选选项的下标,并赋值给活跃选项。要点击的选项是 wx:for 循环出来的,所以接下来就是通过一个三元运算来判断每个循环的元素是否被选中,选中则加特殊样式。js:cateActive:'0',//活跃选项下标clickCate(e){console.lo...

2021-11-16 13:46:26 11971

原创 SpringBoot定义统一的返回结果

    前后端分离项目中,后端开发需要写接口来处理请求并返回响应数据,而为响应数据定义统一的返回格式有利于提高开发效率和沟通的成本,比如包括状态码、操作提示信息、数据等。这样前端在拿到状态码、以及提示信息就可以在前端提示用户,并在页面展示响应数据。    返回格式比如:    那么接下来就在SpringBoot项目中定义统一返回结果。    

2021-11-12 19:54:56 1156

原创 SpringBoot实现发送邮件功能

1、导入依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>2、application.yml文件中进行配置:spring: mail: default-encoding: utf-8 # 主机地址

2021-11-10 16:33:49 528

原创 SpringBoot配置logback生成日志文件

1、了解logback:    logback是Spring Boot默认的日志系统,在 spring-boot-starter 中已经包含了logback的依赖,所以并不需要再去额外引用依赖。    其次,官网建议使用-spring变种形式来定义配置文件名,如果使用标准的配置路径,Spring可能不能完全控制日志初始化。    日志的存在可以帮助我们定位问题,较我们通常用的Syst

2021-11-10 14:36:12 2086

原创 两种使用流的方式拼接sql中in需要的字段

1、先对集合流中的每个元素进行格式转换,然后将所有元素以“,”进行拼接String str= list.stream().map(m -> "'" + m.getIccid() + "'").collect(Collectors.joining(","));2、先遍历集合流,在遍历的过程中对元素进行格式转换,最后对字符串进行截取StringBuilder sb = new StringBuilder("(");list.stream().forEach(m -> sb.app

2021-11-08 17:27:04 1330

原创 父子组件通信

​​​​​​父传子:在父组件引用的子组件上 使用自定义属性的方式声明要传递的数据,子组件使用 props 进行接收。 父: 子: 注:父传子时可传递多个数据。子传父:在父组件引用的子组件上自定义一个事件(@事件名="方法名"),子组件通过this.$emit("事件名")来触发父组件的方法。 父: 注:此时双引号中的editSubmit就是上述的方法名,它属于父组件中的方法。子:总结: 在通信中,无论是子组件向父组件传值还是父组件向子组件传值,他们都...

2021-11-04 11:18:40 119

原创 Element select选择器

1、可搜索、可清空的选择器:<el-select filterable clearable size="mini" class="tool-item" v-model="updateData.deviceTypeUuid" placeholder="请选择设备类型"> <el-option v-for="item in deviceTypeList" :key="item.uuid"

2021-11-02 09:51:35 474

原创 前端发送请求时携带数组参数报400错误

1、业务需求:根据多个卡标签查询相关卡的详细信息。2、一开始的解决方法:先进行除了卡标签条件的查询,然后将第一次查询出的结果与卡标签集合进行比较,只有查询结果的标签 >= 查询条件中的标签才是我们最终返回给前端的结果。3、出现的问题:当前端发送数组至后端时,请求都无法发出去,直接报400 bad request错误。4、最终解决方法:花了好长时间也没找到原因,所以我只好先将前端数组的每个元素以特定分隔符连接,从...

2021-10-26 16:34:58 1579

原创 vuex使用总结

1、vuex的作用: vuex用来做状态管理。它可以将vue项目里面一些全局变量存放在vuex。可以简单的理解为项目的全局变量,但是值得注意的是Vuex里面的数据只要页面刷新就会丢失了。 在DM项目中的使用就是保存一些全局的缓存数据,这样就可以实现组件之间的数据共享。2、主要组成部分:状态 state:这里存放全局变量,组件访问这里面的数据时,可通过 this.$store.state.属性名 访问 状态更改 mutations:这里存放的是对 state中 数据更改的方法,需要在 a..

2021-10-11 16:58:49 154

原创 前端下载二进制流文件

一、两种方式:1、后台提供一个 URL,然后用 window.open(URL) 下载2、后台直接返回文件的二进制内容,然后前端转化一下再下载二、Blob对象: 1、Blob,全称:Binary Large Object,表示不可变的类似文件对象的二进制数据。 2、构造函数:Blob(blobParts[, options]) 参数说明:blobParts:数组类型, 数组中的每一项连接起来构成Blob对象的数据,数组中的每项元素可以是ArrayBuffer(二进制数据缓...

2021-10-09 22:48:52 3659 1

原创 动态sql语句简单使用

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。一、if标签:1、使用时机: 如果这个时候我们有一个需求,就是根据传入的实体类,判断哪些属性不为空,并以此作为查询条件,那么我们就可以用到该标签。2、代码示例:<!-- 根据查询条件进行复合查询...

2021-07-04 18:50:37 435 1

原创 Mybatis中的缓存

一、Mybatis中的缓存1、什么是缓存?缓存就是存在于内存中的临时数据。2、为什么要使用缓存?为了减少和数据库交互的次数,提高执行效率。3、适用于缓存的数据:经常查询并且不经常改变的数据; 数据的正确与否对最终结果影响不大的。4、不适用于缓存的数据:经常改变的数据; 数据的正确与否对最终结果影响很大的。例如:商品的库存、银行的汇率、股市的牌价等。二、Mybatis的一级缓存1、一级缓存是 SqlSession 级别的缓存,只要 Sql...

2021-07-04 17:12:36 206 1

原创 JSON.stringify()与JSON.parse()的区别与使用

一、JSON.stringify():JSON 通常用于与服务端交换数据。在向服务器发送数据时一般是字符串。我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。var data='{"name":"goatling"}'​JSON.parse(data)结果是:​name:"goatling"二、JSON.parse():JSON 通常用于与服务端交换数据。在接收服务器数据时一般是字符串。我们可以使用 JSON.par

2021-07-02 23:23:47 699 1

原创 HashMap的几种遍历方式

public static void main(String[] args) { HashMap<String,String> map = new HashMap<>(); map.put("01","卡卡罗特"); map.put("02","贝吉塔"); map.put("03","比鲁斯"); map.put("04", "维斯"); System.out.println...

2021-06-19 08:10:27 226

原创 Vue相关安装

前端开发vue需要一个好用的代码编辑器,首选VSCode(Visual Studio Code);想要在运行前端代码并在浏览器访问,就得安装nodeJS。 参考博客:一、VSCode安装:https://blog.csdn.net/Zhangguohao666/article/details/105665412/二、VSCode好用的插件: 可通过插件官网下载,也可通过VSCode内置的应用商店下载。插件官网: https://marketplace.visu...

2021-06-17 17:23:31 159

原创 LC.234. 回文链表

根据回文链表的定义想到了要先反转链表并将其保存为新的链表,然后新旧链表从头节点的值比较至链表 1/2 处,期间若有不同则返回false,否则返回true。但是,我却hu'l

2021-06-14 14:09:31 106

原创 LC.19. 删除链表的倒数第 N 个结点

知识点:寻找链表倒数第n个节点 删除链表中值为目标值的节点 删除链表中某一节点的简化思

2021-06-14 13:47:01 87

原创 ssm中el标签不起作用的原因

需要加上:isELIgnored="false"

2021-06-13 20:59:37 105

原创 mybatis报错:Invalid bound statement(not found)

引出问题: mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种:

2021-06-13 20:55:52 16727 1

原创 链表循环终止条件总结

循环遍历一个链表时,终止条件的正确性尤为重要,它可以有效的避免链表指针在移动时出现空指针错误,以及正确解题。而终止条件的确定依赖于问题的需求以及每次走的步数;其次,链表的节点个数也会影响终止条件,有时偶数个节点满足终止条件,而奇数个节点则不满足,因此我们可以根据这些去分析终止条件,一个正确的终止条件应该是满足普遍情况的。常见终止条件:...

2021-06-13 12:24:25 1811

原创 web项目修改默认访问页

一、首先明确,为什么jsp页面要放在WEB-INF下:  因为我们的站点肯定有些页面是需要经过登录验证或其他验证后才能访问的啊,而WEB-INF是安全目录,所以这些页面就放在WEB-INF里。  如果是能不经过验证就访问的页面,比如主页、登录页、欢迎页这种,就不是必须放在WEB-INF里了。二、修改默认访问页:  在web.xml中加入下面这段代码:<welcome-file-list> <welcome-file>/WEB-INF/pages/login.jsp&lt

2021-06-01 09:55:36 2318 1

原创 将空maven项目配置为web项目

  在创建好空的maven项目后,要将该项目配置为web项目的话,需要进行一番设置才能正常使用。  首先在File中选中Project Structure,接下来就可按图进行操作:  完成后,一个空的web项目就配置好了,接下来就需要在pom文件中引入所需要的依赖、配置tomcat服务器了,常规操作在这里就不再叙述了。...

2021-06-01 09:28:44 168

原创 LC.169.多数元素

前言 一题三解,又学到了新知识,重点关注第三种----摩尔投票法。题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1,2,2]输出:2解法 解法一:如果将数组 nums 中的所有元素按照单调递增或单调递减的顺序排序,那么下标为 n/2 的元素(下标从 0 开始)一定是众数。class

2021-05-08 20:25:51 68

原创 LC.122. 买卖股票的最佳时机 II

题目描述给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票价

2021-05-07 16:43:51 61

原创 LC.376.摆动序列

前言 本题是我刷的第二道贪心算法类的题目,但是第一眼确实没看出要用贪心来做,应该是跟我做的题少有关。但其实,即使你不太理解贪心,对于这道题也是可以做出来的,下面来介绍我的解题思路。题目描述如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如,[1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3)是正负交替出现的。...

2021-05-05 11:38:19 160

原创 LC.27. 移除元素

前言 时隔一个月,这道题出现在昨天的每日一题,为了保持题感,也是重刷了一遍,但是读完一遍题居然没有立刻想到之前怎么做的,果然必要的复习是必不可少的。但是经过一个多月的刷题,对这道题还是有想法的,果不其然,我第一次写出了和官解一样的代码,有点小开心!题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新

2021-04-20 23:38:42 80

原创 LC.67. 二进制求和

前言 如果你之前刷过两数相加这类型题,那么对于本题,你很快就会有解题思路。题目描述 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”思路 首先我们需要明白,二进制的核心思想就是满二进一,而作为两数相加的类型题,我们需要额外注意到的就是进位问题,对于这一点,我设置了一个布尔类

2021-04-20 21:49:07 85

空空如也

空空如也

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

TA关注的人

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