<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[这里记录着我一点一滴的进步]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ccblogger</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ccblogger]]></copyright><item><title><![CDATA[缓存数据]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/112151898</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/112151898</guid><author>ccblogger</author><pubDate>Sun, 03 Jan 2021 20:30:21 +0800</pubDate><description><![CDATA[缓存（ Caching ）可以存储经常会用到的信息，这样每次需要的时候，这些信息都是立即可用的。我们将会了解到 Spring 的缓存抽象。尽管 Spring 自身并没有实现缓存解决方案，但是它对缓存功能提供了声明式的支持，能够与多种流行的缓存实现进行集成

开启缓存支持

注解开启：@EnableCaching
	配置开启：&lt;cache:annotation-driven&gt;
两种开启方法的工作方式是相同的。它们都会创建一个切面（ aspect ）并触发Spring 缓存注解的切点（ point.]]></description><category></category></item><item><title><![CDATA[Spring Boot：拦截器与过滤器]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/112148716</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/112148716</guid><author>ccblogger</author><pubDate>Sun, 03 Jan 2021 19:39:05 +0800</pubDate><description><![CDATA[一、拦截器与过滤器

　　在讲Spring boot之前，我们先了解一下过滤器和拦截器。这两者在功能方面很类似，但是在具体技术实现方面，差距还是比较大的。在分析两者的区别之前，我们先理解一下AOP的概念，AOP不是一种具体的技术，而是一种编程思想。在面向对象编程的过程中，我们很容易通过继承、多态来解决纵向扩展。但是对于横向的功能，比如，在所有的service方法中开启事务，或者统一记录日志等功能，面向对象的是无法解决的。所以AOP——面向切面编程其实是面向对象编程思想的一个补充。而我们今天讲的过滤器和拦截.]]></description><category></category></item><item><title><![CDATA[Spring Security]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/112146887</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/112146887</guid><author>ccblogger</author><pubDate>Sun, 03 Jan 2021 19:08:44 +0800</pubDate><description><![CDATA[一、Spring Security简介

Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架。Spring Security提供了完整的安全性解决方案，它能够在Web请求级别和方法调用级别处理身份认证和授权。因为基于Spring框架，所以Spring Security充分利用了依赖注入（dependency injection，DI）和面向切面的技术。

二、Spring Security详情

2.1.实现

Spring Security从两个角度来解决安全性问题]]></description><category></category></item><item><title><![CDATA[oracle数据库中各种锁详解]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/111293929</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/111293929</guid><author>ccblogger</author><pubDate>Wed, 16 Dec 2020 17:21:39 +0800</pubDate><description><![CDATA[概念





Oracle-OLAP和OLTP解读

Oracle-index索引解读

Oracle-分区表解读

Oracle-锁解读

Oracle-等待事件解读

Oracle-procedure/cursor解读





数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时，在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据，破坏数据库的一致性。

如果是单用户的系统，那完全没有必要这个锁，就是因为有多用户并发操作，我们为了确保...]]></description><category></category></item><item><title><![CDATA[Oracle树查询(查询所有子节点，父节点等等)]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/109725007</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/109725007</guid><author>ccblogger</author><pubDate>Mon, 16 Nov 2020 17:02:33 +0800</pubDate><description><![CDATA[Oracle树查询的最重要的就是select...start with... connect by ...prior语法了。

创建表结构如下：


CREATE TABLE DEPARTMENT_INFO_T
 (   
    DEPT_ID    VARCHAR2(20)    NOT NULL,   
    DEPT_NAME    VARCHAR2(20),   
    DEPT_LEVEL    NUMBER,   
    DEPT_PID    VARCHAR2(20)   
)
...]]></description><category></category></item><item><title><![CDATA[基于MyBatis的批量插入操作]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/109628609</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/109628609</guid><author>ccblogger</author><pubDate>Wed, 11 Nov 2020 18:50:08 +0800</pubDate><description><![CDATA[1、貌似MyBatis不支持在XML配置的SQL中带有分号“;”，这就要求尽可能在配置中通过一条SQL语句实现；

2、不同数据库可支持的批量插入SQL语句的写法有差别，Oracle批量插入SQL语句如下：

写法："INSERT ALL INTO a表 VALUES(各个值) INTO a表 VALUES (其它值) INTO a表 VALUES(其它值) ....再跟一个SELECT 语句"

参考文章：http://blog.youkuaiyun.com/chenleixing/article/details..]]></description><category></category></item><item><title><![CDATA[软考-数据流图详解（Data Flow Diagram）]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/109532651</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/109532651</guid><author>ccblogger</author><pubDate>Fri, 06 Nov 2020 15:28:02 +0800</pubDate><description><![CDATA[一、概念

它是将提供给用户的业务流程图(“物理模型”)进行功能建模，转化成开发人员能够理解的一系列“逻辑模型”图，即以图形化的方法描绘数据在系统中的流动和处理的过程，这些图都应该用规范的DFD描述。

二、原理

DFD设计过程就是将数据和处理进行逐层分解就形成了若干层次的DFD。DFD分为顶层图(只有一张)、0层图(也只有一张)、子图、子子图等等。

三、包含主要元素

即在DFD中包括哪些主要元素，数据流、加工、数据存储、外部实体。

(1)数据流：用单箭头表示，如――&gt;。是由一组固定成分的数.]]></description><category></category></item><item><title><![CDATA[Metaspace整体介绍（永久代被替换原因、元空间特点、元空间内存查看分析方法）]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/108999838</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/108999838</guid><author>ccblogger</author><pubDate>Sat, 10 Oct 2020 16:37:08 +0800</pubDate><description><![CDATA[根据JVM内存区域的划分，简单的画了下方的这个示意图。区域主要分为两大块，一块是堆区（Heap），我们所New出的对象都会在堆区进行分配，在C语言中的malloc所分配的方法就是从Heap区获取的。而垃圾回收器主要是对堆区的内存进行回收的。

而另一部分则是非堆区，非堆区主要包括用于编译和保存本地代码的“代码缓存区(Code Cache)”、保存JVM自己的静态数据的“永生代（Perm Gen）”、存放方法参数局部变量等引用以及记录方法调用顺序的“Java虚拟机栈（JVM Stack）”和“本地方法栈（Lo]]></description><category></category></item><item><title><![CDATA[IDEA使用版本控制工具-Git]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/107484338</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/107484338</guid><author>ccblogger</author><pubDate>Tue, 21 Jul 2020 11:10:29 +0800</pubDate><description><![CDATA[本文介绍使用IDEA控制Git操作

关联本地Git客户端

首先要根据系统环境安装Git客户端

然后使用File --&gt; Settings --&gt; Version Control --&gt; Git配置客户端安装目录





创建本地仓库

根据项目要求创建自己的项目

然后使用VCS--&gt; Import into Version Control --&gt; Create Git Repository...在项目上创建Git仓库





创建成功后会在项目文件夹内...]]></description><category></category></item><item><title><![CDATA[Oracle+Mybatis批量插入包含序列的使用]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/107451232</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/107451232</guid><author>ccblogger</author><pubDate>Sun, 19 Jul 2020 20:55:55 +0800</pubDate><description><![CDATA[&lt;insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false"&gt;
  
  insert into XX_XX(XX,XX,XX,XX,XX,XX,XX,XX)
  select XX.Nextval,a.* from(
  &lt;foreach collection="list" item="item" separator="union"&gt;
...]]></description><category></category></item><item><title><![CDATA[git rebase使用简介]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/107002786</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/107002786</guid><author>ccblogger</author><pubDate>Sun, 28 Jun 2020 17:23:10 +0800</pubDate><description><![CDATA[一、起因

上线构建的过程中扫了一眼代码变更，突然发现，commit提交竟然多达62次。我们来看看都提交了什么东西：



这里我们先不说git提交规范，就单纯这么多次无用的commit就很让人不舒服。可能很多人觉得无所谓，无非是多了一些提交纪录。

然而，并非如此，你可能听过破窗效应，编程也是如此！

二、导致问题

1.不利于代码review
设想一下，你要做code review，结果一个很小的功能，提交了60多次，会不会有一些崩溃？

2.会造成分支污染

你的项目充满了无...]]></description><category></category></item><item><title><![CDATA[IDEA优化设置，提高开发效率]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/105789422</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/105789422</guid><author>ccblogger</author><pubDate>Mon, 27 Apr 2020 14:03:39 +0800</pubDate><description><![CDATA[一、IDEA设置

File -&gt; Settings
	工具栏有个工具按钮点下（假如没工具栏，View -&gt; 选下Toolbar）
二、主题设置



三、设置鼠标悬浮提示（重要！）

在Eclipse里，我们鼠标移动到一个类上，会提示这个类的文档解释信息；
IDEA里默认不会这样，我们需要设置下：

Editor-&gt;General

四、显示方法分隔符（方法之间，上下就有分隔符...]]></description><category></category></item><item><title><![CDATA[SpringBoot+Mybatis一次条件插入批量数据进oracle数据库的方法]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/105210547</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/105210547</guid><author>ccblogger</author><pubDate>Mon, 30 Mar 2020 22:25:39 +0800</pubDate><description><![CDATA[&lt;insert id="addProToActivity" parameterType="java.util.ArrayList"&gt;
		INSERT INTO TGP_SM_ACTIVITY_PRODUCT(ID,PRODUCT_CODE,TYPE,ACTIVITY_ID,
			OPERATE_NAME,OPERATE_ID,OPERATE_TIME,CATEGORY)
			...]]></description><category></category></item><item><title><![CDATA[Mybatis中动态sql之foreach的用法]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/105210362</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/105210362</guid><author>ccblogger</author><pubDate>Mon, 30 Mar 2020 22:16:59 +0800</pubDate><description><![CDATA[mybatis之foreach用法

在做mybatis的mapper.xml文件的时候，我们时常用到这样的情况：动态生成sql语句的查询条件，这个时候我们就可以用mybatis的foreach了

foreach元素的属性主要有item，index，collection，open，separator，close。

item：集合中元素迭代时的别名，该参数为必选。
	index：在list和数组...]]></description><category></category></item><item><title><![CDATA[SpringBoot+Mybatis批量插入Oracle数据库方法]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/105210295</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/105210295</guid><author>ccblogger</author><pubDate>Mon, 30 Mar 2020 22:14:25 +0800</pubDate><description><![CDATA[oracle 批量插入与mysql 的批量插入的方式是不同的，

insert into tablename()values(),(),(); ---这个是mysql 的批量插入形式

insert all into tablename() values() into tablename() values() -------这个是Oracle批量插入形式



下面记录: mybaits ...]]></description><category></category></item><item><title><![CDATA[Mybatis连接Oracle使用concat关键字进行模糊查询遇到的坑]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/104996745</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/104996745</guid><author>ccblogger</author><pubDate>Fri, 20 Mar 2020 19:16:23 +0800</pubDate><description><![CDATA[在使用MyBatis操作Oracle数据库的时候，写模糊查询突然发现原本在MySql中正确的代码，在Oracle中报错，参数个数无效


&lt;if test="empId!=null and empId!=''"&gt;
    and e.empId like CONCAT('%',#{empId},'%')
&lt;/if&gt;

异常信息；



经过查阅数个资料后得知Oracle的C...]]></description><category></category></item><item><title><![CDATA[Mybatis中一些特殊转义字符的用法]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/104996279</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/104996279</guid><author>ccblogger</author><pubDate>Fri, 20 Mar 2020 18:46:56 +0800</pubDate><description><![CDATA[在mybatis中sql是写在xml映射文件中的，如果sql中有一些特殊字符的话，在解析xml文件的时候就会被转义，如若不希望被转义，那该怎么办呢？

方法一：使用特殊转义字符

例如，&gt;=开始日期 并且&lt;=结束日期

&amp;gt; &gt; 大于号

&amp;lt; &lt; 小于号


 
   &lt;if test="searchTimeBegin != nu...]]></description><category></category></item><item><title><![CDATA[Eclipse中使用git解决冲突的方法]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/104951507</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/104951507</guid><author>ccblogger</author><pubDate>Wed, 18 Mar 2020 19:19:35 +0800</pubDate><description><![CDATA[一、先制造冲突

这里的目的是模仿大家平常提交代码遇到的代码冲突问题。（项目已经已经提前创建好并放到了 GIT 上）

先在云端修改TestGit_Master.java文件，如下图：

然后在本地修改TestGit_Master.java文件，如下图：

接下来我们解决冲突。

二、项目右键“team”，选择“commit”，与正常提交做一样的操作



三、提交并推送



发送推送失败，...]]></description><category></category></item><item><title><![CDATA[.gitignore文件规则简介]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/104949302</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/104949302</guid><author>ccblogger</author><pubDate>Wed, 18 Mar 2020 17:24:36 +0800</pubDate><description><![CDATA[有些时候，你必须把某些文件放到Git工作目录中，但又不能提交它们，比如保存了数据库密码的配置文件啦，等等，每次git status都会显示Untracked files ...，有强迫症的童鞋心里肯定不爽。

好在Git考虑到了大家的感受，这个问题解决起来也很简单，在Git工作区的根目录下创建一个特殊的.gitignore文件，然后把要忽略的文件名填进去，Git就会自动忽略这些文件。

不需要从头...]]></description><category></category></item><item><title><![CDATA[本地安装Redis]]></title><link>https://blog.youkuaiyun.com/ccblogger/article/details/104756837</link><guid>https://blog.youkuaiyun.com/ccblogger/article/details/104756837</guid><author>ccblogger</author><pubDate>Mon, 09 Mar 2020 17:24:57 +0800</pubDate><description><![CDATA[redis 本地安装

1、redis介绍

Redis是有名的NoSql数据库，一般Linux都会默认支持。但在Windows环境中，可能需要手动安装设置才能有效使用。简单介绍一下Windows下Redis服务的安装方法。

2、获取安装包

Windows的Redis安装包需要到以下GitHub链接找到。打开网站后，找到Release，点击前往下载页面

链接：https://github....]]></description><category></category></item></channel></rss>