<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Nicholas_long的博客]]></title><description><![CDATA[不积跬步，无以至千里；不积小流，无以成江海]]></description><link>https://blog.youkuaiyun.com/Nicholas_long</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Nicholas_long]]></copyright><item><title><![CDATA[RestTemplate发送POST请求之formData形式]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/155729429</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/155729429</guid><author>Nicholas_long</author><pubDate>Tue, 09 Dec 2025 09:29:45 +0800</pubDate><description><![CDATA[文章摘要：本文记录了使用RestTemplate远程调用邮件服务时遇到的问题及解决方案。最初直接传递JavaBean对象导致远程服务获取数据为空，经排查发现服务接口使用form-data接收数据。解决方法包括：1)构建multipart/form-data请求头；2)使用LinkedMultiValueMap构建键值对参数；3)封装请求体并发送请求。文中提供了完整示例代码，演示了如何正确设置请求头和参数格式，最终成功实现远程服务调用。]]></description><category></category></item><item><title><![CDATA[springboot 配置多数据源的时提示：‘url‘ attribute is not specified and no embedded datasource could be configure]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/155612759</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/155612759</guid><author>Nicholas_long</author><pubDate>Fri, 05 Dec 2025 17:12:11 +0800</pubDate><description><![CDATA[本文记录了多数据源配置过程中遇到的问题及解决方案。作者在SpringBoot项目中配置多个数据库时，出现&quot;未指定url属性&quot;和驱动类无法确定的问题。排查发现并非缺少MySQL驱动或阿里数据源冲突，而是dynamic-datasource-spring-boot-starter版本与SpringBoot3+不兼容。正确做法是使用dynamic-datasource-spring-boot3-starter依赖，并通过@DS注解切换数据源。该问题源于多数据源包版本与SpringBoot版本的]]></description><category></category></item><item><title><![CDATA[sql 按照前端传的数组里的值进行自定义排序]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/153731914</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/153731914</guid><author>Nicholas_long</author><pubDate>Wed, 22 Oct 2025 14:26:39 +0800</pubDate><description><![CDATA[文章摘要：客户需要按照指定SKU顺序进行非升序/降序的排序查询。前端传递包含referenceArray（排序数组）和查询条件的JSON参数。后端使用String.join()将数组转为逗号分隔字符串（如&quot;TU2501,TU2515&quot;），并通过SQL的FIND_IN_SET()函数实现自定义排序。关键点：转换时需去除数组括号，SQL中Order By使用FIND_IN_SET(reference,&quot;值1,值2&quot;)格式且值间不能有空格，不能添加DESC/ASC以保证自定]]></description><category></category></item><item><title><![CDATA[Vue 父子传值 使用watch监听 传同值不发生变化解决方案]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/149768346</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/149768346</guid><author>Nicholas_long</author><pubDate>Wed, 30 Jul 2025 10:11:26 +0800</pubDate><description><![CDATA[Vue父子组件传相同值时watch不生效的解决方法：这是由于Vue出于性能考虑，相同值不会触发watch。常见错误做法是直接传相同值，正确方法是在父组件中先设置为不同值（如null），再通过$nextTick传真实值，这样watch会触发两次但可通过校验处理。不推荐使用deep或immediate等强制监听方式，这违背Vue设计原则。Vue3中该机制保持不变，应从业务逻辑优化而非改变框架默认行为。]]></description><category></category></item><item><title><![CDATA[Vue实现el-checkbox单选并回显选中]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/149625714</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/149625714</guid><author>Nicholas_long</author><pubDate>Fri, 25 Jul 2025 09:20:57 +0800</pubDate><description><![CDATA[本文介绍了在Vue中实现Checkbox单选功能的方法。通过使用el-checkbox-group组件绑定数组，结合change事件，当选中多个选项时利用splice(0,1)删除前一个值，保持数组始终只有一个元素。同时展示了数据回显的实现方式：先清空数组再将新值push进去。文章还提供了splice方法的示例说明，帮助理解其删除数组元素的原理。这是一个简洁有效的Checkbox单选解决方案。]]></description><category></category></item><item><title><![CDATA[vue递归树形结构删除不符合数据 生成一个新数组]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/149609978</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/149609978</guid><author>Nicholas_long</author><pubDate>Thu, 24 Jul 2025 17:45:08 +0800</pubDate><description><![CDATA[摘要：本文介绍了一种通过递归和splice()方法从路由菜单数据结构中删除按钮数据的实现方案。数据结构包含多层嵌套的菜单项。核心代码通过递归遍历数据，当遇到非菜单项时，使用splice(i, data.length)删除从当前索引到数组末尾的所有元素。该方法会修改原数组，但能有效过滤出纯菜单数据。文中还解释了splice()方法的参数含义和具体使用示例。]]></description><category></category></item><item><title><![CDATA[sysbench对linux服务器上mysql8.0版本性能压测]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/149535310</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/149535310</guid><author>Nicholas_long</author><pubDate>Tue, 22 Jul 2025 15:58:26 +0800</pubDate><description><![CDATA[本文介绍了使用sysbench工具对MySQL数据库进行性能测试的完整流程。首先详细说明了sysbench的安装方法（通过yum安装）和功能特性，重点讲解了如何创建测试数据库和表。文章提供了完整的sysbench命令行参数说明，包括指定数据库连接信息、测试表数量、数据量大小、并发线程数等关键参数，并特别强调了命令格式中的注意事项。最后展示了如何执行性能测试（将prepare改为run），通过输出结果评估数据库的读写性能。整个过程涵盖了从环境准备到实际测试的全套操作指南。]]></description><category></category></item><item><title><![CDATA[Nacos修改实例权重时报错caused: errCode: 500, errMsg: do metadata operation failed ；caused: com.alibaba.nacos]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/139796804</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/139796804</guid><author>Nicholas_long</author><pubDate>Wed, 19 Jun 2024 11:21:22 +0800</pubDate><description><![CDATA[大概原因是上次启动的nacos是在甲方，用的是甲方的网络，到了新环境用的是乙方的网络，导致ip发生了变化，详解：（nacos 采用。服务器 IP 改变时会导致 raft 记录的集群地址失效，导致选 Leader 出现问题。停掉nacos服务，进入nacos目录下 ，找到data目录下的protocol 文件夹删掉。选举算法计算 Leader，并记录上次启动的集群地址，删掉之后重新启动nacos，就可以修改权重了。]]></description><category></category></item><item><title><![CDATA[安装多jdk环境，启动nacos 提示 Please set the JAVA_HOME variable in your environment, We need java(x64)! 问题]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/139476657</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/139476657</guid><author>Nicholas_long</author><pubDate>Wed, 05 Jun 2024 17:44:09 +0800</pubDate><description><![CDATA[上图可以看到分别配置了JAVA_HOME17 跟 JAVA_HOME8，新项目使用的cloud版本，在启动nacos的时候提示Please set the JAVA_HOME variable in your environment, We need java(x64)的环境变量，猜想是因为配置jdk环境时没有JAVA_HOME这个环境变量，于是把我目前项目所需要的jdk的JAVA_HOME17 改成 JAVA_HOME。]]></description><category></category></item><item><title><![CDATA[git提交项目被拒提示 refs/heads/master:refs/heads/master [remote rejected] (hook declined)Done]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/139320629</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/139320629</guid><author>Nicholas_long</author><pubDate>Thu, 30 May 2024 13:35:21 +0800</pubDate><description><![CDATA[网上找了各种解决方案 有些说是远程仓库跟本地仓库不一致问题，要么就是说是远程仓库有隐藏文件 用git pull 拉一下，有的说是分支问题等等吧。经过了解原来是在gtee上邮箱管理  -  禁止命令行推送暴漏邮箱问题。第二步：进入设置里找到邮箱管理，取消静止命令推送暴漏个人邮箱。第一步进入gitee 进入个人主页，点击设置。]]></description><category></category></item><item><title><![CDATA[Vue el-input 使用伪元素插入间隔符]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/124747758</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/124747758</guid><author>Nicholas_long</author><pubDate>Fri, 13 May 2022 11:15:13 +0800</pubDate><description><![CDATA[老规矩先上效果图：



就是在输入框插入间隔符，小编使用css的伪元素进行操作

上代码：


&lt;el-input placeholder="请输入用户名" v-model="loginForm.username"
          prefix-icon="el-icon-user" class="letLine"&gt;
&lt;/el-input&gt;



伪元素letLine是个css属性样式


.letLine::before {
  content: "";
  width: 1]]></description><category></category></item><item><title><![CDATA[mybatis 一对多 两种查询方式]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/121670814</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/121670814</guid><author>Nicholas_long</author><pubDate>Thu, 02 Dec 2021 10:35:14 +0800</pubDate><description><![CDATA[注意事项: 如果是多表 例如有A表，B表 A是多端，B是一端 那么就要在B端声明A端的集合 必须

上代码：

我使用的是java语言，先看实体类 这是单表的一对多 多表跟单表逻辑是一致


public class Menu extends PublicVo {
    private Integer id;
    private String name;
    private String path;
    private String component;
    private Strin..]]></description><category></category></item><item><title><![CDATA[vue button按钮绑定回车登录事件]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/121289826</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/121289826</guid><author>Nicholas_long</author><pubDate>Fri, 12 Nov 2021 15:59:27 +0800</pubDate><description><![CDATA[上代码：


    &lt;el-form ref="loginform" :rules="rules" :model="login" label-width="30px"&gt;
              &lt;el-form-item  prop="u_login_name"&gt;
                &lt;el-input style="width: 75%" v-model="login.u_login_name" placeholder="请输入手机号或用户名" cleara]]></description><category></category></item><item><title><![CDATA[springboot配置日志文件控制台不打印sql语句]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/115579366</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/115579366</guid><author>Nicholas_long</author><pubDate>Sat, 10 Apr 2021 16:47:07 +0800</pubDate><description><![CDATA[搜了很多没有还是没有实现我想要的效果，认真看了配置灵机一动就按照自己想的配置好了

想要的效果是想把日志文件输出在本地好追溯项目问的根源，控制台打印sql，看效果

图一：这是输出到本地的日志文件



图二：控制台打印sql



开始配置：

第一步：引入log4j2包 把springboot的默认Logback去掉，

Logback是log4j框架的作者开发的新一代日志框架，它效率更高、能够适应诸多的运行环境，同时天然支持SLF4J。

默认情况下，Spring Boot会用Logback来记录日志]]></description><category></category></item><item><title><![CDATA[修改redis 密码跟端口]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/115455778</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/115455778</guid><author>Nicholas_long</author><pubDate>Tue, 06 Apr 2021 10:48:37 +0800</pubDate><description><![CDATA[第一步首先确认下载或者安装redis，下载地址：https://github.com/tporadowski/redis/releases





第二步：上一步操作完成后启动redis 启动命令：
]]></description><category></category></item><item><title><![CDATA[react+antd4.0版本自定义验证]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/115278318</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/115278318</guid><author>Nicholas_long</author><pubDate>Sun, 28 Mar 2021 12:25:06 +0800</pubDate><description><![CDATA[最近使用ract+antd4.0版本做表单验证，因为一个字段可能有多验证，如果都写在页面里显的很不优雅

看了很多博文看看有没有我想要的，结果没有 基本都是使用 创建的 form 控制实例来实现做验证

先上一张图片



乍看这张图一脸蒙，没头没尾，心里一万个。。。

我简单给大家做一下介绍 要想使用上述方式做自定义验证 首先使用 form.create()创建form实例

说明：如果不创建form控制实例 当你使用this.props.form会报错undefined

 如果你是使用...]]></description><category></category></item><item><title><![CDATA[react+ant启动服务时太慢解决方案]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/111711788</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/111711788</guid><author>Nicholas_long</author><pubDate>Fri, 25 Dec 2020 22:23:29 +0800</pubDate><description><![CDATA[初学react+ant 运行时项目是项目非常缓慢

解决方案：

第一步：首先使用


npm config get registry 命令查看源  



https://registry.npmjs.org/国外的镜像

每次用npm的，因为使用国外的镜像，非常的慢

通过改变默认npm镜像代理服务，可以大幅提升安装速度

第二步：安装淘宝镜像


npm config set registry https://registry.npm.taobao.org 



第三步：第二步安装成功之后使用

n]]></description><category></category></item><item><title><![CDATA[mysql 按日期查询最新的一条记录]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/110201785</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/110201785</guid><author>Nicholas_long</author><pubDate>Thu, 26 Nov 2020 19:49:42 +0800</pubDate><description><![CDATA[看了好几篇博文关于这个查询数据库最新一条记录 没有得出正确的答案特此记录一下

先看一下表结构

A表：



B表：





B表的car_id关联A表的car_id



先说单表的查询以B表为例：

sql语句： select *from (select b.* from car_examinelog as b ORDER BY b.e_time desc) as c GROUP BY c.car_id

这里的sql意思是先按日期排序 在按照car_id分组 这样查出每个car_id最新的...]]></description><category></category></item><item><title><![CDATA[uni-app 获取数据动态预览]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/107184887</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/107184887</guid><author>Nicholas_long</author><pubDate>Tue, 07 Jul 2020 17:03:02 +0800</pubDate><description><![CDATA[老规矩先上图：

图一：



图二：



图二是图一点击方法的效果

后台返回的数据格式：

[{
 "e_id": 27,
 "e_time": "2020-07-07 15:51:08",
 "e_statu": 1,
 "e_remark": "通过",
 "c_ids": 97,
 "u_id": 4,
 "c_id": 97,
 "c_companyName": "济南xxx科技有限公司",
 "c_legalPerson": "as",
...]]></description><category></category></item><item><title><![CDATA[uni-app 表单防止重复提交（前端）]]></title><link>https://blog.youkuaiyun.com/Nicholas_long/article/details/107077903</link><guid>https://blog.youkuaiyun.com/Nicholas_long/article/details/107077903</guid><author>Nicholas_long</author><pubDate>Thu, 02 Jul 2020 09:55:32 +0800</pubDate><description><![CDATA[做项目时经常遇到表单重复提交的问题 小编带来这一种有效的防止重复提交本人测试有效

上代码：

&lt;form @submit="examine"&gt;

&lt;button form-type="submit" &gt;提交&lt;/button&gt;

&lt;/from&gt;

examine(e){
    if(this.isCommitted==false){
     this.isCommitted=true;

...]]></description><category></category></item></channel></rss>