<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[choath的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/choath</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; choath]]></copyright><item><title><![CDATA[[Git]如何解决Please commit your changes or stash them before you merge.]]></title><link>https://blog.youkuaiyun.com/choath/article/details/124314071</link><guid>https://blog.youkuaiyun.com/choath/article/details/124314071</guid><author>choath</author><pubDate>Thu, 21 Apr 2022 09:54:23 +0800</pubDate><description><![CDATA[Please commit your changes or stash them before you merge.]]></description><category></category></item><item><title><![CDATA[Nginx配置文件粗略解析]]></title><link>https://blog.youkuaiyun.com/choath/article/details/113601561</link><guid>https://blog.youkuaiyun.com/choath/article/details/113601561</guid><author>choath</author><pubDate>Wed, 03 Feb 2021 14:05:10 +0800</pubDate><description><![CDATA[Nginx配置文件


#指定用户
user root;

#指定进程数，一般指定为核心数的2倍
worker_processes 8;

#日志记录（默认开启仅记录异常的等级）
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#进程id(默认创建)
#pid logs/nginx.pid;

events{
 #工作模型 日志中可看到
 use epoll...]]></description><category></category></item><item><title><![CDATA[Java中占位符的实战运用]]></title><link>https://blog.youkuaiyun.com/choath/article/details/112970284</link><guid>https://blog.youkuaiyun.com/choath/article/details/112970284</guid><author>choath</author><pubDate>Thu, 21 Jan 2021 20:19:10 +0800</pubDate><description><![CDATA[java中的占位符,有以下几种等等：


%s字符串类型的占位符
%b布尔类型的占位符
%d整数类型的占位符
%c字符类型的占位符

我们大多情况就只用前两种：

举个例子：


/**
 * Created by xiwen on 2021/1/14
 */
@Slf4j
public class TestCode {
    public static void main(String[] args) {
        String s = "我的名字叫%s，很高兴认识你。你真是%d个小可爱!真的吗？]]></description><category></category></item><item><title><![CDATA[Mysql中如何截取json字符串中指定片段再对其进行模糊查询--SUBSTRING_INDEX(s, delimiter, number)函数的实战运用]]></title><link>https://blog.youkuaiyun.com/choath/article/details/112916839</link><guid>https://blog.youkuaiyun.com/choath/article/details/112916839</guid><author>choath</author><pubDate>Thu, 21 Jan 2021 15:11:08 +0800</pubDate><description><![CDATA[应用场景，给你一个表单信息的字符串，如下：


]]></description><category></category></item><item><title><![CDATA[MySql中 IF()函数的用法]]></title><link>https://blog.youkuaiyun.com/choath/article/details/112566874</link><guid>https://blog.youkuaiyun.com/choath/article/details/112566874</guid><author>choath</author><pubDate>Wed, 13 Jan 2021 15:21:13 +0800</pubDate><description><![CDATA[需求：查询某几个字段的最大值，如果最大值为-1，则取-1，否则取最大值。


-- 单个字段
select name,if(grade&gt;90,'优秀','不优秀') 成绩 from student


-- 多个字段
SELECT
IF
 (
  min( FORM_MAX_COUNT ) = - 1,- 1,
 max( FORM_MAX_COUNT )) AS FORM_MAX_COUNT,
IF
 (
  min( FIELD_LOGIC_SHOW_MA...]]></description><category></category></item><item><title><![CDATA[git tag 标签用法]]></title><link>https://blog.youkuaiyun.com/choath/article/details/109201363</link><guid>https://blog.youkuaiyun.com/choath/article/details/109201363</guid><author>choath</author><pubDate>Wed, 21 Oct 2020 15:36:10 +0800</pubDate><description><![CDATA[查看现有标签


$ git tag
v1.0
v2.0
v3.0

搜索指定标签（类似模糊查询）


$ git tag -l 'v1.4.*'
v1.4.1
v1.4.2
v1.4.3

新建标签（-a代表annotated 带注释的 ，-m代表 message 附注）


$ git tag -a v1.4 -m 'my version 1.4'

$ git tag
v0.1
v1.3
v1.4

git show 命令查看相应标签的版本信息


$ git show 2020年10月21日
t..]]></description><category></category></item><item><title><![CDATA[Java jsonObject 转 map 对象]]></title><link>https://blog.youkuaiyun.com/choath/article/details/109027162</link><guid>https://blog.youkuaiyun.com/choath/article/details/109027162</guid><author>choath</author><pubDate>Mon, 12 Oct 2020 14:41:36 +0800</pubDate><description><![CDATA[1.jsonObject 转 map

相关jar包：


import java.util.HashMap; 
import java.util.Iterator; 
import java.util.Map; 
import java.util.Map.Entry; 
import com.alibaba.fastjson.JSON; 
import com.alibaba.fastjson.JSONObject;

代码：


 JSONObject user = resJson.getJSONObj]]></description><category></category></item><item><title><![CDATA[contos7查找 redis 或者 redis.conf 的路径]]></title><link>https://blog.youkuaiyun.com/choath/article/details/108447886</link><guid>https://blog.youkuaiyun.com/choath/article/details/108447886</guid><author>choath</author><pubDate>Mon, 07 Sep 2020 14:54:10 +0800</pubDate><description><![CDATA[第一步：查询redis的进程号【ps -ef|grep redis】


ps -ef|grep redis

//执行结果
root      7579     1  0 Sep01 ?        00:05:27 ./redis-server *:6114


第二步：通过进程号查询redis的安装路径【ls -l /proc/进程号/cwd】


ls -l /proc/7579/cwd

//执行结果
lrwxrwxrwx 1 root root 0 Sep  7 14:29 /proc/7..]]></description><category></category></item><item><title><![CDATA[java中怎么给redis缓存设置失效时间]]></title><link>https://blog.youkuaiyun.com/choath/article/details/108203043</link><guid>https://blog.youkuaiyun.com/choath/article/details/108203043</guid><author>choath</author><pubDate>Mon, 24 Aug 2020 17:04:17 +0800</pubDate><description><![CDATA[//参数分别是key，value，时间，时间单位,这里表示缓存的这个键值对3600s后失效
redisTemplate.opsForValue().set("key", value, 3600, TimeUnit.SECONDS);


]]></description><category></category></item><item><title><![CDATA[ArrayList转Json的时候，如果list中有null值，转完会丢失有null值的key，如何解决？]]></title><link>https://blog.youkuaiyun.com/choath/article/details/108106784</link><guid>https://blog.youkuaiyun.com/choath/article/details/108106784</guid><author>choath</author><pubDate>Wed, 19 Aug 2020 18:03:20 +0800</pubDate><description><![CDATA[使用下面方法：


JSON.parseArray(JSONObject.toJSONString(arrList, SerializerFeature.WriteMapNullValue));

结果：


      {
        "DOC_ID": null,
        "CODE": "59553DEB1BC24D15BB0E97B27D931CA8",
        "STAT": "1",
        "DOC_NAME": null,
        "NODE_NAME":]]></description><category></category></item><item><title><![CDATA[Mysql如何根据数据库的表，批量拼写sql语句？]]></title><link>https://blog.youkuaiyun.com/choath/article/details/106758867</link><guid>https://blog.youkuaiyun.com/choath/article/details/106758867</guid><author>choath</author><pubDate>Mon, 15 Jun 2020 11:25:02 +0800</pubDate><description><![CDATA[应用场景：按照要求批量清除表中的数据，由于表非常多，手写sql非常的麻烦，且消耗大量的时间，所以用下面的方法自动生成即可。


select CONCAT('DELETE from ',table_name,';') from information_schema.tables where table_schema='库名';


查询结果为：



复制出sql语句即可！

注：上述方法，可以举一反三，满足各种需求！
...]]></description><category></category></item><item><title><![CDATA[如何在SpringBoot2.0+版本中，写个拦截器？]]></title><link>https://blog.youkuaiyun.com/choath/article/details/106477838</link><guid>https://blog.youkuaiyun.com/choath/article/details/106477838</guid><author>choath</author><pubDate>Mon, 01 Jun 2020 17:46:12 +0800</pubDate><description><![CDATA[需求：出于对接口的安全性的考虑，调用接口需要前端携带token值，以验证用户的合法性，如果用户合法，则允许用户调用接口，反之则禁止用户随意调用接口。

前提条件：这里的token值，是由用户登录时产生的随机码，当用户登录时，我们把生成token值和用户的信息，以key-value的形式存入redis，这样当前端调后端接口的时候，在请求头带上这个token值，我们就可以在后端写个拦截器，来校验用户的合法性了。

下面上代码：



只需要写红色框框中的两个类即可：


import com.pactera.c]]></description><category></category></item><item><title><![CDATA[封装一个返回类]]></title><link>https://blog.youkuaiyun.com/choath/article/details/106078133</link><guid>https://blog.youkuaiyun.com/choath/article/details/106078133</guid><author>choath</author><pubDate>Tue, 12 May 2020 16:10:28 +0800</pubDate><description><![CDATA[背景:后端写接口给前端返回数据时,往往需要统一的返回一些字段,比如说:错误码,错误提示什么的,这里为了简化后端的工作,特意封装一个返回类,给前端返回数据.


package com.pactera.common;


import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(...]]></description><category></category></item><item><title><![CDATA[如何把返给前端的json中的null替换成空字符串?]]></title><link>https://blog.youkuaiyun.com/choath/article/details/105505273</link><guid>https://blog.youkuaiyun.com/choath/article/details/105505273</guid><author>choath</author><pubDate>Tue, 14 Apr 2020 09:50:23 +0800</pubDate><description><![CDATA[前提原因:前端需要没有null值的json

解决方案:用枚举写个单例模式的方法,把json中的null替换成空字符串""


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.Iterator;

public enum JsonTool {
    ...]]></description><category></category></item><item><title><![CDATA[记一个云服务器上的mysql不能远程连接的问题]]></title><link>https://blog.youkuaiyun.com/choath/article/details/104378130</link><guid>https://blog.youkuaiyun.com/choath/article/details/104378130</guid><author>choath</author><pubDate>Tue, 18 Feb 2020 17:14:06 +0800</pubDate><description><![CDATA[事情是这样的,我在云服务器上面安装了mysql8.0,但是使用navicat远程无论如何就是连接不上.

环境contos7

下面是对这个问题的处理:

1.首先在linux上确定自己能否连接

使用以下命令

mysql -uroot -p123456

结果:服务器上的mysql可用

2.然后想到的是,是否开通3306端口

使用一下命令开启防火墙的3306端口

firewall-cmd...]]></description><category></category></item><item><title><![CDATA[关于mybatis查询空列不返回问题]]></title><link>https://blog.youkuaiyun.com/choath/article/details/103924847</link><guid>https://blog.youkuaiyun.com/choath/article/details/103924847</guid><author>choath</author><pubDate>Fri, 10 Jan 2020 15:12:00 +0800</pubDate><description><![CDATA[问题描述:

sql语句中明明查询了40个字段,但是结果只返回了25个字段!

这个问题检查了一下午,非常懵不知道什么情况,后来通过各种百度,才发现是mybatis配置控制的,null的字段不返回给前端!

解决办法:

在项目配置文件(application.yml)中添加以下配置


#空字段不返回解决方案
mybatis.configuration.call-setters-on-nulls...]]></description><category></category></item><item><title><![CDATA[关于Swagger2报错java.lang.NumberFormatException: For input string: ""的总结]]></title><link>https://blog.youkuaiyun.com/choath/article/details/103785607</link><guid>https://blog.youkuaiyun.com/choath/article/details/103785607</guid><author>choath</author><pubDate>Tue, 31 Dec 2019 17:05:28 +0800</pubDate><description><![CDATA[首先,说明一下报错的原因:

第一种情况:


    @ApiModelProperty(value = "排序", example = "1")
    private int sort_order;

    如上代码,如果实体类中,int类型或者long类型字段,没有写example = "1"这个默认值的话,swagger会默认为""空字符串,所以字符串转数字,就有了Number...]]></description><category></category></item><item><title><![CDATA[如何把SpringBoot项目部署到服务器?]]></title><link>https://blog.youkuaiyun.com/choath/article/details/103636305</link><guid>https://blog.youkuaiyun.com/choath/article/details/103636305</guid><author>choath</author><pubDate>Fri, 20 Dec 2019 17:44:06 +0800</pubDate><description><![CDATA[第一步:打包SpringBoot项目成jar包



备注:打包成功后,根据所给的路径寻找jar包即可

第二步:用ftp把项目上传到服务器

省略...

第三步:使用Linux命令启动项目

找到目类执行命令:java -jargame-0.0.1-SNAPSHOT.jar



第四步:使用浏览器访问项目接口


...]]></description><category></category></item><item><title><![CDATA[IDEA 的 Debug 调试]]></title><link>https://blog.youkuaiyun.com/choath/article/details/103398318</link><guid>https://blog.youkuaiyun.com/choath/article/details/103398318</guid><author>choath</author><pubDate>Thu, 05 Dec 2019 09:24:55 +0800</pubDate><description><![CDATA[一、Debug开篇
	
	
	二、基本用法&amp;快捷键
	
	
	三、变量查看
	
	
	四、计算表达式
	
	
	五、智能步入
	
	
	六、断点条件设置
	
	
	七、多线程调试
	
	
	八、回退断点
	
	
	九、中断Debug
	
Debug用来追踪代码的运行流程，通常在程序运行过程中出现异常，启用Debug模式可以分析定位异常发生的位置，以及在运行过程中参数的变化。通常我们也可...]]></description><category></category></item><item><title><![CDATA[Mybatis的一些使用技巧]]></title><link>https://blog.youkuaiyun.com/choath/article/details/102724382</link><guid>https://blog.youkuaiyun.com/choath/article/details/102724382</guid><author>choath</author><pubDate>Thu, 24 Oct 2019 15:40:31 +0800</pubDate><description><![CDATA[1.返回自增主键id(在做插入操作的时候,可以通过getID()方法,获取该条数据的主键ID)

具体操作,在xml文件中添加 useGeneratedKeys="true" keyProperty="ID",如下:
&lt;insert id="insertSelective" parameterType="com.chinastock.portal.oa.bean.NewStaffInfo" ...]]></description><category></category></item></channel></rss>