<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[生花脱颖的博客]]></title><description><![CDATA[囊中脱颖，梦里生花]]></description><link>https://blog.youkuaiyun.com/ZF2015908732</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZF2015908732]]></copyright><item><title><![CDATA[MySQL死锁 centos数据库死锁解决方案]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678586</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678586</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 11:13:48 +0800</pubDate><description><![CDATA[发生情况：由于某种错误操作导致数据库死锁
解决方法：

使用xshell连接远程服务器
输入命令whereis mysql查看MySQL安装位置


安装位置如图所示，共有四个（不一定，这个服务器上有四个，看个人服务器情况），只能一个个去试，当前使用的是那个数据库（我试到第二个就登录进去了）


cd到MySQL安装位置后，输入命令mysql -u root -p进入数据库，密码可以在宝塔中查看


成功进入数据库后，输入命令select * from information_schema.innodb_t]]></description><category></category></item><item><title><![CDATA[java list集合根据时间字段排序]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678543</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678543</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 11:04:14 +0800</pubDate><description><![CDATA[//  list列表根据元素中的时间字段进行排序
public List listSort2(List&lt;AppChatApiRes&gt; initList) {// 接收实体类list
    List&lt;AppChatApiRes&gt; list = initList;
//        System.out.println("排序前----:" + list);
    Collections.sort(list, new Comparator&lt;AppChatApiRes&gt;(]]></description><category></category></item><item><title><![CDATA[宝塔部署nginx后配置反向代理]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678345</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678345</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:55:24 +0800</pubDate><description><![CDATA[server {
        listen 8085; # 要代理的端口号
        server_name localhost; # 名字
        location / {
            root  /www/wwwroot/test; # 项目目录
            autoindex on; # on表示开启
        } 
}



访问时直接使用 IP+端口号 即可访问


...]]></description><category></category></item><item><title><![CDATA[mysql 存在则更新某个字段或不操作，不存在则新增 ON DUPLICATE KEY UPDATE 或REPLACE]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678307</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678307</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:52:15 +0800</pubDate><description><![CDATA[uid weekly_id已经设置索引（唯一索引）

效果：如果 插入一条uid 跟 weekly_id 相同的数据，则会进行时间的更新

insert into read_not (weekly_id,uid,create_time) 
values (1,4,now()) 
ON DUPLICATE KEY UPDATE 
create_time = now() 

REPLACE语句实现（未测试，仅作为了解）
使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一，形成一个原子操作。]]></description><category></category></item><item><title><![CDATA[java @JsonFormat注解 规定时间日期返回值格式]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678249</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678249</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:50:11 +0800</pubDate><description><![CDATA[用法
@Data
public class proRes {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    private Date startTime;
    // pattern 规定返回值的格式； 
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    private Date endTime;
}

详解（一搜一大堆）

@]]></description><category></category></item><item><title><![CDATA[java @Results注解 MySQL  mybatis 注解开发 一对多查询]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678152</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678152</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:46:00 +0800</pubDate><description><![CDATA[// 主sql，此处需要把传入副sql的参数的值查出
@Results(value = {
// 如果获取的 id 为空值，可以放开此条注释
//        @Result(id = true, property = "pro_id", column = "pro_id"),//没有的话外面id会为null
        // 映射到res中的字段名 传的参数 方法名
        @Result(property = "ability", 
                column = "lo]]></description><category></category></item><item><title><![CDATA[java 开启异步 异步注解 @Async]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678127</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108678127</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:41:56 +0800</pubDate><description><![CDATA[需要配合启动类注解 @EnableAsync 使用

注意：异步的调用方法跟被调用方法不能在同一个类
中，否则会不生效
如果异步方法有返回值，此时获取的方法返回值则会为null。

解决方法：将返回值作为参数，传入方法中，并将方法的返回值改为void




调用异步方法

 public Result statistics(@RequestBody ModularTimeParam param) throws Exception {
     long startTime = System.current]]></description><category></category></item><item><title><![CDATA[MySQL mybatis注解开发 动态sql sql循环 foreach循环]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108677954</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108677954</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:40:22 +0800</pubDate><description><![CDATA[注意：此处只写了foreach的最核心部分，动态sql 注解开发需要在最外层嵌套&lt;script&gt;标签，并且对里面的一些引号进行转意（最下方有示例）
select * from user where 1=1 and
&lt;foreach item="id" collection="ids"
  open="(" separator="or" close=")"&gt;
   #{id}
&lt;/foreach&gt;

实体中有字段为 ids 的数组
循环后输出的内容：(id=1 or id=]]></description><category></category></item><item><title><![CDATA[MySQL Group By 分组后保留最新一条记录]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108677841</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108677841</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:32:24 +0800</pubDate><description><![CDATA[select a.* from 
(select * from user order by id desc) a 
group by a.id

先在子查询中进行倒序排列，查询排列完成的数据

]]></description><category></category></item><item><title><![CDATA[java @option注解 sql添加获取添加数据的自增id]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/108677565</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/108677565</guid><author>ZF2015908732</author><pubDate>Sat, 19 Sep 2020 10:29:45 +0800</pubDate><description><![CDATA[@option 注解
当你向一个主键为自增的数据表中插入字段后想要返回刚插入那一条数据的自增id。
 @Options (useGeneratedKeys=true, 
           keyProperty="gid",  // 主键
           keyColumn="paramGid") // 参数实体中的字段

useGeneratedKeys 设置为"true" 表明要 MyBatis 获取由数据库自动生成的主键。
keyProperty=“git” 指定把获取到的主键值注入到相对应]]></description><category></category></item><item><title><![CDATA[IDEA或WEBSTORM多分支上传git]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/107540564</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/107540564</guid><author>ZF2015908732</author><pubDate>Thu, 23 Jul 2020 16:28:27 +0800</pubDate><description><![CDATA[自己的分支，提交本地（首先确定是自己的分支）


committ，不同的版本界面可能有所不同，但是基本操作都是相同的


切换主分支，下拉主分支代码


切换自己的分支，主分支代码合并到自己的分支。


合并过程中可能会有冲突，冲突的话选择第三个蓝色按钮，自己对比代码解决冲突。左边代码是自己的，中间代码是最终的结果，右边代码是服务器上的代码。
合并时需要的代码点击 “》”或“《“，不需要的代码点 ”X"


合并完成后（此时是在自己的分支）直接推送（push）代码即可。


推送完成后，去git服务器，..]]></description><category></category></item><item><title><![CDATA[Java使用MD5加密]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/105776007</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/105776007</guid><author>ZF2015908732</author><pubDate>Sun, 26 Apr 2020 20:38:24 +0800</pubDate><description><![CDATA[直接上代码，对于MD5的其它信息，可以去参考下其它的博客。
很多的博客代码基本都相同，但是没有引入 pom 的部分，所以这里把 pom 也写上了。
这篇博客是在项目结束后把项目中使用的一些知识点整理后写的。直接复制使用即可
引入pom依赖
&lt;!--  MD5加密  --&gt;
&lt;dependency&gt;
	&lt;groupId&gt;org.apache.commons&lt;...]]></description><category></category></item><item><title><![CDATA[配置springBoot的定时任务]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/104801915</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/104801915</guid><author>ZF2015908732</author><pubDate>Wed, 11 Mar 2020 18:27:59 +0800</pubDate><description><![CDATA[使用springBoot的注解完成
以下三个注解都是springBoot自带的注解，不需要修改pom文件什么的
@EnableScheduling//该注解要写在启动类里面，是启动类的注解

@Configuration//该注解是需要定时任务的类用的注解

@Scheduled(cron = "0 0 0 * * ? ") //定时任务的方法用的注解（秒 分 时 日 星期几 年），每天的0点0分...]]></description><category></category></item><item><title><![CDATA[IDEA新建Java文件自动生成注释]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/104703841</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/104703841</guid><author>ZF2015908732</author><pubDate>Fri, 06 Mar 2020 20:42:47 +0800</pubDate><description><![CDATA[在设置中找到Editor -&gt; File and Code Templates -&gt; Files -&gt; Class 如下图

在相应的位置插途中的内容。就可以生成含有自己昵称的注释了。
下面的英文文档中还介绍几种对应的取值方式，也是都可以使用的。

...]]></description><category></category></item><item><title><![CDATA[IDEA更改maven镜像，提高下载速度]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/104447008</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/104447008</guid><author>ZF2015908732</author><pubDate>Sat, 22 Feb 2020 18:38:46 +0800</pubDate><description><![CDATA[在桌面 右键选中idea---属性---打开文件位置，这时所处在的位置应该是bin目录下，返回上一层目录。

按照 plugins\maven\lib\maven3\conf 的顺序，依次打开，在文件夹里面有一个setting.xml的文件。如果没有，请忽略本文。

直接用记事本之类的编辑软件（记事本、editplus、botepad++等）打开，大概是146行的地方，添加如图所示的代码

...]]></description><category></category></item><item><title><![CDATA[更换MySQL版本的简易方法]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/104261367</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/104261367</guid><author>ZF2015908732</author><pubDate>Tue, 11 Feb 2020 12:50:18 +0800</pubDate><description><![CDATA[1
首先去PHPstudy官网下载最新的phpstudy，下载后进行安装。注意：安装的时候不要覆盖原来版本的phpstudy，安装路径不要包含中文。
2
安装完成后直接打开

找到  数据库  点击更多，选中要升级的版本，我选择的是MySQL5.7，然后下载就可以了。
3
下载完成后，电脑上就存在两个版本的MySQL了，根据启动的phpstudy版本来选择要使用的MySQL版本，也可以选择将旧版本...]]></description><category></category></item><item><title><![CDATA[java发起网络请求]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/104048107</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/104048107</guid><author>ZF2015908732</author><pubDate>Mon, 20 Jan 2020 10:04:40 +0800</pubDate><description><![CDATA[//整个代码只需要改url就可以了
package com.demo.service;
//我的这个请求是在项目中的，放在Service层了，使用的时候随便放就行了，放上访问就可以了
//下面的这些是需要导的包，直接复制就行
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import...]]></description><category></category></item><item><title><![CDATA[JAVA之JWT简单应用测试]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/103729748</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/103729748</guid><author>ZF2015908732</author><pubDate>Fri, 27 Dec 2019 12:45:24 +0800</pubDate><description><![CDATA[1 引入pom文件
&lt;dependency&gt;
	&lt;groupId&gt;com.auth0&lt;/groupId&gt;
	&lt;artifactId&gt;java-jwt&lt;/artifactId&gt;
	&lt;version&gt;3.8.3&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
	&lt;...]]></description><category></category></item><item><title><![CDATA[centOS使用命令安装tomcat]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/103519560</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/103519560</guid><author>ZF2015908732</author><pubDate>Fri, 13 Dec 2019 09:33:01 +0800</pubDate><description><![CDATA[安装tomcat，看似麻烦，其实无非就是找目录、文件，给权限的问题。
去tomcat官网下载对应版本的tomcat
下载教程：

这个，firefox（火狐浏览器），在地址栏输入 百度  的链接，由于系统没有输入法，所以在搜索tomcat官网的时候直接用拼音代替就可以。（百度搜索“tomcatguanwang”）。进入官网后，

下载哪个版本看你需要，我下载的是9，点击后进入下载页面，下滑有哦个选...]]></description><category></category></item><item><title><![CDATA[Jeefast框架图片上传的坑，报错{"msg":"invalid token","code":500}]]></title><link>https://blog.youkuaiyun.com/ZF2015908732/article/details/103463687</link><guid>https://blog.youkuaiyun.com/ZF2015908732/article/details/103463687</guid><author>ZF2015908732</author><pubDate>Mon, 09 Dec 2019 19:46:11 +0800</pubDate><description><![CDATA[jeefast框架，自带拦截器，必须要在拦截器中开放设置图片路径的方法才可以正常访问，否则直接在浏览器地址栏输入图片的地址会报错  {“msg”:“invalid token”,“code”:500}  。
开放拦截器的位置（不好意思，因为弄了pom文件，导致项目报错了，但是暂时不影响使用）

红框中第二个文件是拦截器代码的位置，第一个是写设置图片目录代码的文件

这里除了红框中的代码，其它都是自...]]></description><category></category></item></channel></rss>