<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Troub_cy的博客]]></title><description><![CDATA[用不同的角度看世界，在奇异的光景里，找到属于自己的那片天]]></description><link>https://blog.youkuaiyun.com/Troub_cy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Troub_cy]]></copyright><item><title><![CDATA[Mybatis-Plus逻辑删除不生效处理方案]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/130962173</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/130962173</guid><author>Troub_cy</author><pubDate>Wed, 31 May 2023 09:50:28 +0800</pubDate><description><![CDATA[如果你正在使用的是3.2.0版本以下的mybatis-plus，则需要在你的配置类中加入以下代码。MybatisPlus逻辑删除配置。]]></description><category></category></item><item><title><![CDATA[IDEA常用的配置]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/130927935</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/130927935</guid><author>Troub_cy</author><pubDate>Mon, 29 May 2023 15:06:15 +0800</pubDate><description><![CDATA[Idea 开发工具 实用的配置]]></description><category></category></item><item><title><![CDATA[Caffeine 本地高速缓存工具类]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/130873417</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/130873417</guid><author>Troub_cy</author><pubDate>Fri, 26 May 2023 09:07:25 +0800</pubDate><description><![CDATA[Caffeine 是基于 JAVA 8 的高性能缓存库。并且在 spring5 (springboot 2.x) 后，spring 官方放弃了 Guava，而使用了性能更优秀的 Caffeine 作为默认缓存组件。]]></description><category></category></item><item><title><![CDATA[线程池的基本原理]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/129676672</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/129676672</guid><author>Troub_cy</author><pubDate>Mon, 20 Mar 2023 21:17:53 +0800</pubDate><description><![CDATA[ArrayBlockingQueue： 这是一个由数组实现的容量固定的有界阻塞队列.SynchronousQueue： 没有容量，不能缓存数据；每个put必须等待一个take;offer()的时候如果没有另一个线程在poll()或者take()的话返回false。LinkedBlockingQueue： 这是一个由单链表实现的默认无界的阻塞队列。LinkedBlockingQueue提供了一个可选有界的构造函数，而在未指明容量时，容量默认为Integer.MAX_VALUE。方法说明add。]]></description><category></category></item><item><title><![CDATA[Mockito教程]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/128029212</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/128029212</guid><author>Troub_cy</author><pubDate>Fri, 25 Nov 2022 00:04:06 +0800</pubDate><description><![CDATA[Mock简单使用]]></description><category></category></item><item><title><![CDATA[easypoi导出csv文件，wps打开正常，excel2016打开乱码解决方案]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/127062551</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/127062551</guid><author>Troub_cy</author><pubDate>Mon, 26 Sep 2022 22:40:56 +0800</pubDate><description><![CDATA[使用easypoi  csv文件导出打开乱码处理]]></description><category></category></item><item><title><![CDATA[Mybatis批量插入性能优化]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/125531880</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/125531880</guid><author>Troub_cy</author><pubDate>Thu, 30 Jun 2022 00:25:06 +0800</pubDate><description><![CDATA[mybaits批量插入踩的坑，拿出来乐呵乐呵]]></description><category></category></item><item><title><![CDATA[OAuth2实现单点登录SSO]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/121109244</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/121109244</guid><author>Troub_cy</author><pubDate>Tue, 02 Nov 2021 21:05:34 +0800</pubDate><description><![CDATA[OAuth2实现单点登录SSO

1. 前言

技术这东西吧，看别人写的好像很简单似的，到自己去写的时候就各种问题，“一看就会，一做就错”。网上关于实现SSO的文章一大堆，但是当你真的照着写的时候就会发现根本不是那么回事儿，简直让人抓狂，尤其是对于我这样的菜鸟。几经曲折，终于搞定了，决定记录下来，以便后续查看。先来看一下效果







2. 准备

2.1. 单点登录

最常见的例子是，我们打开淘宝APP，首页就会有天猫、聚划算等服务的链接，当你点击以后就直接跳过去了，并没有让你再登录一次



...]]></description><category></category></item><item><title><![CDATA[正则表达式隐藏（*）手机号或身份证号]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/119031828</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/119031828</guid><author>Troub_cy</author><pubDate>Fri, 23 Jul 2021 13:40:48 +0800</pubDate><description><![CDATA[import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args){
        /**
         * 隐藏电话号码中间四位
         * 第一种写法，String.replaceAll()方法
         * $1表示正则表达式 (\d{3})\d*([0-9a-zA-Z]{4}) 的第一个括号]]></description><category></category></item><item><title><![CDATA[Redis集群搭建的三种方式]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/116005556</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/116005556</guid><author>Troub_cy</author><pubDate>Thu, 22 Apr 2021 11:14:18 +0800</pubDate><description><![CDATA[Redis集群搭建的三种方式
一、Redis主从
1.1 Redis主从原理
和MySQL需要主从复制的原因一样，Redis虽然读取写入的速度都特别快，但是也会产生性能瓶颈，特别是在读压力上，为了分担压力，Redis支持主从复制。Redis的主从结构一主一从，一主多从或级联结构，复制类型可以根据是否是全量而分为全量同步和增量同步。
下图为级联结构：
image.png
1.1.1 全量同步
Redis全量复制一般发生在slave的初始阶段，这时slave需要将master上的数据都复制一份，具体步骤如下：
]]></description><category></category></item><item><title><![CDATA[二叉树、平衡二叉树、B-Tree、B+Tree简单理解]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/114085841</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/114085841</guid><author>Troub_cy</author><pubDate>Thu, 25 Feb 2021 15:54:57 +0800</pubDate><description><![CDATA[1 二叉树

二叉树binary tree是指每个节点最多含有两个子树的树结构。

    特点：

1.所有节点最多拥有两个子节点，即度不大于2

2.左子树的键值小于根的键值，右子树的键值大于根的键值。

    因为二叉树只是定义了简单的结构，所以存在多种深度可能，导致二叉树的效率低，所以引入了平衡二叉树。



2 平衡二叉树

2.1 avl树

平衡二叉树，基于avl算法，即是avl树（avl tree）

特点...]]></description><category></category></item><item><title><![CDATA[MySQL的四种事务隔离级别]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/113879098</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/113879098</guid><author>Troub_cy</author><pubDate>Sat, 20 Feb 2021 11:04:43 +0800</pubDate><description><![CDATA[MySQL的四种事务隔离级别

本文实验的测试环境：Windows 10+cmd+MySQL5.6.36+InnoDB

一、事务的基本要素（ACID）

　　1、原子性（Atomicity）：事务开始后所有操作，要么全部做完，要么全部不做，不可能停滞在中间环节。事务执行过程中出错，会回滚到事务开始前的状态，所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体，就像化学中学过的原子，是物质构成的基本单位。

　　2、一致性（Consistency）：事务开始前和结束后，数据库的完整性约束没有被破坏.]]></description><category></category></item><item><title><![CDATA[二叉树]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/113848902</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/113848902</guid><author>Troub_cy</author><pubDate>Thu, 18 Feb 2021 16:30:58 +0800</pubDate><description><![CDATA[1|0定义：


二叉树（Binary Tree）是n（n&gt;=0）个节点的有限集合，该集合或者空集（称为空二叉树），或者由一个根节点和两棵互不相交的，分别称为根节点的左子树和右子树的二叉树组成。




2|0特点：


每个结点最多有两棵子树，所以二叉树中不存在度大于2的结点。注意不是只有两棵子树，而是最多有。没有子树或者有一棵子树都是可以的。
	左子树和右子树是有顺序的，次序不能任意颠倒。就像人是双手、双脚，但显然左手、左脚和右手、右脚是不一样的，右手戴左手套、右脚穿左鞋都会极其别扭和难受。
	.]]></description><category></category></item><item><title><![CDATA[Oracle 数据库 回滚到指定时间]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/110931347</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/110931347</guid><author>Troub_cy</author><pubDate>Wed, 09 Dec 2020 17:32:28 +0800</pubDate><description><![CDATA[实用开发之-oracle表回滚到一个指定时间的操作语句

在开发或客户使用过程中，难免会出现误操作或脏数据，那么怎么迅速处理这个问题呢？

1.备份还原就用了，太麻烦。

就是使用ORACLE的备份功能，然后在还原，还原的时候新建一个库，然后使用dblink进行连接。

将数据导回去。

2.使用oracle的还原操作，但是这个操作只能还原数据，表发生改变就不能了，切记。这个语句是这样的：

---说明这个语句来自网络:地址：这里就是笔记。

select * from 表名 as of timestamp]]></description><category></category></item><item><title><![CDATA[CentOS7下安装mysql 5.7.18]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/108313441</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/108313441</guid><author>Troub_cy</author><pubDate>Mon, 31 Aug 2020 00:05:59 +0800</pubDate><description><![CDATA[一. 简介

     下载路径：https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

     系统环境： centOS 7, mysql 5.7.18

二. 安装步骤

2.1 卸载旧的mysql

2.1.1 删除mysql的安装文件

    查询mysql的安装文件：






	[root@ali228 ~]# find / -...]]></description><category></category></item><item><title><![CDATA[Vue+elementUI+springboot+mybatis demo教程（三）]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/108146711</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/108146711</guid><author>Troub_cy</author><pubDate>Fri, 21 Aug 2020 14:37:09 +0800</pubDate><description><![CDATA[axios使用
	跨域处理
	mock.js的使用


上篇文章结尾介绍了今天这篇文章主要内容包括axios使用、跨域处理，以及mock.js的使用

axios使用

Axios是基于 Promise 的 HTTP 请求客户端，可同时在浏览器和 node.js 中使用，有人可能会问axios 和ajax有什么关联呢？实际上axios是通过promise实现对ajax技术的一种封装，就像jQuery实现ajax封装一样。
简单用法如下
Get 请求


getUserList(){
     var _t.]]></description><category></category></item><item><title><![CDATA[Vue+elementUI+springboot+mybatis demo教程（二）]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/108146688</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/108146688</guid><author>Troub_cy</author><pubDate>Fri, 21 Aug 2020 14:35:27 +0800</pubDate><description><![CDATA[安装配置node.js
	安装vue并搭建前台项目
	前台项目引入elementUI
	前台项目引入axios


本篇主要记录前台项目搭建之前的环境准备，首先要安装node.js(node官网),进行相关配置等。

安装配置node.js

进入node.js 官网下载你电脑对应的安装包，下载完双击运行下载的软件一直next安装，安装完后，你可以在命令行中查看是否安装成功。windows键加R打开运行窗口，输入cmd，打开命令行，再输入node -v，回车，就可以看到node的版本
node.js自带n.]]></description><category></category></item><item><title><![CDATA[Vue+elementUI+springboot+mybatis demo教程（一）]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/108146630</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/108146630</guid><author>Troub_cy</author><pubDate>Fri, 21 Aug 2020 14:33:56 +0800</pubDate><description><![CDATA[最近在学习Vue.js ，做了一个简单的demo,实现增删改查功能，简单的图片上传，树形菜单使用，大概效果如下
写这篇博客主要是为了记录demo 实现过程，以及用到的知识，大概会分几个部分来写，包括环境准备，前台项目搭建，后台项目搭建，以及一些工具的使用等，今天就写到这里，接下来的内容，我会尽快更新
前台demo：https://github.com/lna001/VueDemo-elementUI
后台demo：https://github.com/lna001/VueDemo
...]]></description><category></category></item><item><title><![CDATA[Oracle中row_number()、rank()、dense_rank() 的区别]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/107322474</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/107322474</guid><author>Troub_cy</author><pubDate>Mon, 13 Jul 2020 18:19:44 +0800</pubDate><description><![CDATA[Oracle中row_number()、rank()、dense_rank() 的区别

row_number的用途非常广泛，排序最好用它，它会为查询出来的每一行记录生成一个序号，依次排序且不会重复，注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。

rank函数用于返回结果集的分区内每行的排名，行的排名是相关行之前的排名数加一。简单来说rank函数就是对查询出来的记录进行排名，与row_number函数不同的是，rank函数考虑到了over子句中排序字段值相同的情况]]></description><category></category></item><item><title><![CDATA[Easyui中Datagrid的view的使用]]></title><link>https://blog.youkuaiyun.com/Troub_cy/article/details/107037861</link><guid>https://blog.youkuaiyun.com/Troub_cy/article/details/107037861</guid><author>Troub_cy</author><pubDate>Tue, 30 Jun 2020 11:10:54 +0800</pubDate><description><![CDATA[创建datagrid

在页面上添加一个div或table标签，然后用jquery获取这个标签，并初始化一个datagrid。代码如下：

页面上的div标签：


1 &lt;div id="magazineGrid"&gt;
2 &lt;/div&gt;



js代码：






 1 $('#magazineGrid').datagrid({
 2     height: 340,
 3     url: 'url',
 4     method: 'POST',
 5     queryPa..]]></description><category></category></item></channel></rss>