<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CSxiaoyuhan的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CSxiaoyuhan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CSxiaoyuhan]]></copyright><item><title><![CDATA[Mysql多表联查使用union all 代替or查询]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/108583308</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/108583308</guid><author>CSxiaoyuhan</author><pubDate>Mon, 14 Sep 2020 17:17:09 +0800</pubDate><description><![CDATA[多表联查注意点：



ACT_RU_TASK 表数据量：19767

ACT_HI_PROCINST 表数据量：21607

BPM_HI_ROLETASKINST 表数据量：1911

BPM_HI_ROLEIDENTITYLINK 表数据量：1229



所有的查询sql、所有的表结构及数据详情见附件。



1.Sql多表联查如果只使用and的话，可以直接使用join系列。

 比如：整个查询速度还是可以的，大约0.041s




			SELECT

			...]]></description><category></category></item><item><title><![CDATA[HTTP通信和RPC通信两种通讯协议的不同]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/107302140</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/107302140</guid><author>CSxiaoyuhan</author><pubDate>Sun, 12 Jul 2020 17:20:05 +0800</pubDate><description><![CDATA[首先来回顾一下计算机网络的七层协议：物理层，数据链路层，网络层，传输层，会话层，表示层，应用层。

TCP属于传输层协议

HTTP是建立在tcp之上的应用层协议



SOCKET

socket是针对tcp或udp的具体接口实现，提供了在传输层进行网络编程的方法



RPC

RPC(Remote Procedure Call：远程过程调用)：一种进程间通信方式。允许像调用本地服务一样调用远程服务



RPC架构

包含四个核心组件



客户端(client)：服务的调用方

服务端(se...]]></description><category></category></item><item><title><![CDATA[单机结构-集群结构-微服务架构的区别]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/107302090</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/107302090</guid><author>CSxiaoyuhan</author><pubDate>Sun, 12 Jul 2020 17:17:48 +0800</pubDate><description><![CDATA[优秀的github微服务开源框架：

https://github.com/bz51/SpringBoot-Dubbo-Docker-Jenkins基于SpringBoot+Dubbo的微服务框架（借助Docker+Jenkins实现自动化、容器化部署）


微服务架构的演变

单机结构

我想大家最最最熟悉的就是单机结构，一个系统业务量很小的时候所有的代码都放在一个项目中就好了，然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。 那么，单机结构有啥缺点呢？我想缺.]]></description><category></category></item><item><title><![CDATA[反射通过父类反射出所有的子类]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/102573813</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/102573813</guid><author>CSxiaoyuhan</author><pubDate>Tue, 15 Oct 2019 20:05:03 +0800</pubDate><description><![CDATA[package com.thunisoft.test;

			import java.io.File;

			import java.io.IOException;

			import java.net.URL;

			import java.util.ArrayList;

			import java.util.Enumeration;

			import jav...]]></description><category></category></item><item><title><![CDATA[反射通过接口反射出所有子类]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/102573785</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/102573785</guid><author>CSxiaoyuhan</author><pubDate>Tue, 15 Oct 2019 20:03:14 +0800</pubDate><description><![CDATA[注意此处，如果要通过接口反射字类的话，一定会去获取某个文件夹中的类来获取。

此时要注意了，如果在没有打包之前是可以获取到的，但是如果日后，要查询的文件夹是在jar包中则就获取不到了。因此此处代码就是我写的即可以获取本地，也可以获取jar中的文件夹。

ClassUtils类：


			package cn.teddy.sp.common.utils;

			

			import java...]]></description><category></category></item><item><title><![CDATA[二进制流转MultipartFile的MVC的上传文件对象]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/102573330</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/102573330</guid><author>CSxiaoyuhan</author><pubDate>Tue, 15 Oct 2019 19:39:40 +0800</pubDate><description><![CDATA[网上一般都是使用测试的maven包中的MockMultipartFile这个类，就是下边这个maven包：


			
 &lt;dependency&gt;

 &lt;groupId&gt;org.springframework&lt;/groupId&gt;

 &lt;artifactId&gt;spring-test&lt;/artifactId&gt;

 &lt...]]></description><category></category></item><item><title><![CDATA[java算法面试题-二叉树中两个节点的最近公共父节点]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/100012890</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/100012890</guid><author>CSxiaoyuhan</author><pubDate>Thu, 22 Aug 2019 13:15:11 +0800</pubDate><description><![CDATA[两个升序数组合并成一个数组的算法

有两个数组，a[]、b[]，都是已经升序排好序的，现将两个数组合成一个数组c[]，要求时间复杂度是O(n),注意边界情况。



public static int[] getNewArray(int a[], int b[]) {
        int c[] = new int[a.length + b.length];
        int ai = ...]]></description><category></category></item><item><title><![CDATA[java代码实现多线程消费者生产者问题。]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/78480980</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/78480980</guid><author>CSxiaoyuhan</author><pubDate>Wed, 08 Nov 2017 17:20:12 +0800</pubDate><description><![CDATA[生产者消费者问题（就是存放拿取问题）
 （1）什么是消费者生产者问题？很多情况下，我们需要这样的模型。大家可以想象一下吃自助餐。在自助餐的公共区域有很多食物，我们(消费者)可以去挑选食物。然而，这时候食物被我们选没了，于是大家伙都等待。在等待什么呢？等待厨师做出新的一批食物放置上来，我们就可以继续选择我们喜爱的食物。
         同样，如果反过来理解的话也可以。我们可以制造一些请求，这些]]></description><category></category></item><item><title><![CDATA[idea中的http://www.springframework.org/schema/p 报错如何解决]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/78392074</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/78392074</guid><author>CSxiaoyuhan</author><pubDate>Mon, 30 Oct 2017 13:28:31 +0800</pubDate><description><![CDATA[复制出现红色字体的路径
File-Settings-schemasandDtDs


点击加号。把路径考进去就可以了]]></description><category></category></item><item><title><![CDATA[浅谈架构---前后端分离和未来发展之路。]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/78038100</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/78038100</guid><author>CSxiaoyuhan</author><pubDate>Wed, 20 Sep 2017 10:43:00 +0800</pubDate><description><![CDATA[前言：分离模式
　　对前后端分离研究了一段时间，恰逢公司有一个大项目决定尝试使用前后端分离模式进行，便参与其中。该项目从2016年初立项至今，平平稳稳得度过，但也涌现出越来越多的问题，绝对不是说前后端分离模式不好，而是很多公司在尝试前后端分离的时候没有做好充分得准备。
　　网上对前后端分离介绍的文章已经屡见不鲜，接下来本人用一点粗浅的言语也谈谈这块，献丑了。
为什么要分离？
　　如果只问“]]></description><category></category></item><item><title><![CDATA[Java中ArrayList和LinkedList区别]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77969218</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77969218</guid><author>CSxiaoyuhan</author><pubDate>Wed, 13 Sep 2017 18:02:46 +0800</pubDate><description><![CDATA[一般大家都知道ArrayList和LinkedList的大致区别： 
     1.ArrayList是实现了基于动态数组的数据结构，LinkedList基于链表的数据结构。 
     2.对于随机访问get和set，ArrayList觉得优于LinkedList，因为LinkedList要移动指针。 
     3.对于新增和删除操作add和remove，LinedList比较占优势，因]]></description><category></category></item><item><title><![CDATA[was aborted.  Call getNextException to see the cause.异常问题]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77947394</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77947394</guid><author>CSxiaoyuhan</author><pubDate>Tue, 12 Sep 2017 17:11:13 +0800</pubDate><description><![CDATA[INSERT INTO myscheme.table_name(list,of,column,names,...) VALUES (9007199314139196, 'F', 27, 625, 625, 625,625, 625, 28), (9007199314139198, 'T', 2395, 2369, 2369, 2369, 2369, 2369,2389), was aborted.]]></description><category></category></item><item><title><![CDATA[Sql语句增加列，修改列，删除列]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866804</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866804</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 15:14:51 +0800</pubDate><description><![CDATA[1.增加列：
 alter table tableName add columnName varchar(30) 
2.1. 修改列类型：
alter table tableName alter column columnName varchar(4000) 
2.2. 修改列的名称：
EXEC  sp_rename   'tableName.column1' , 'column2'  ]]></description><category></category></item><item><title><![CDATA[Map集合的遍历，4种方法。]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866583</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866583</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 15:03:28 +0800</pubDate><description><![CDATA[Map集合的四种遍历。

public static void main(String[] args) {

  Map map = new HashMap();
  map.put("1", "value1");
  map.put("2", "value2");
  map.put("3", "value3");
  
  //第一种：普遍使用，二次取值
  System.out.prin]]></description><category></category></item><item><title><![CDATA[解析XML方法，如何对xml进行解析]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866478</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866478</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 14:58:06 +0800</pubDate><description><![CDATA[源码地址：链接：http://pan.baidu.com/s/1o76Okrw 密码：ehda  
Demo和本人解析xml成sql的实例
Javatest类
package com.huayu.parseXml;

import java.io.IOException;
import java.io.InputStream;

import javax.xml.parsers.Docume]]></description><category></category></item><item><title><![CDATA[getOutputStream() has already been called for this response异常处理]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866391</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866391</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 14:52:43 +0800</pubDate><description><![CDATA[转载地址：http://www.cnblogs.com/Orange42/p/6168803.html
错误日志里偶尔会有getOutputStream()has already been called for this response这个错误
最近发现了高概率复现条件，所以顺手解决了一下：
首先根据这个错误关键信息，得知是错误产生原因是response.getWriter()和respo]]></description><category></category></item><item><title><![CDATA[DataTable设置列表的宽度]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866219</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866219</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 14:45:46 +0800</pubDate><description><![CDATA[地址：http://datatables.club/reference/option/dom.html
http://datatables.club/example/basic_init/dom.html
 
设置列表的宽度
.xftb table tbody tr:first-child td:first-child {
	width: 400px;
}

我得html写法

	
	]]></description><category></category></item><item><title><![CDATA[DataTable属性详解]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866178</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866178</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 14:43:19 +0800</pubDate><description><![CDATA[Datatables是一款jquery表格插件。它是一个高度灵活的工具，可以将任何HTML表格添加高级的交互功能。支持静态表格格式化为DataTable但是表格的书写必须是。




&lt;table id="table_id_example" class="display"&gt;
		&lt;thead&gt;
			&lt;tr&gt;
				&lt;th&gt;Column 1&lt...]]></description><category></category></item><item><title><![CDATA[DataTable在ajax上的应用]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866119</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866119</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 14:39:02 +0800</pubDate><description><![CDATA[DataTables 我的网盘地址（包括demo）：链接：http://pan.baidu.com/s/1chLkUM密码：bejv
这里边只复用插件，其他的都不需要
需要用到的插件：
dataTables.min.css、jquery-2.1.0.min.js
jquery.dataTables.min.js  这些都可以在我的网盘中或这自己下载的插件中找到
Tjxfxx2.js 自己]]></description><category></category></item><item><title><![CDATA[DataTable插件Hello world]]></title><link>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866077</link><guid>https://blog.youkuaiyun.com/CSxiaoyuhan/article/details/77866077</guid><author>CSxiaoyuhan</author><pubDate>Wed, 06 Sep 2017 14:35:31 +0800</pubDate><description><![CDATA[DataTables 插件下载地址http://datatables.club/
或者
DataTables 我的网盘地址（包括demo）：链接：http://pan.baidu.com/s/1chLkUM密码：bejv
 
效果图：



需要用到的插件：
dataTables.min.css
jquery-2.1.0.min.js
jquery.dataTables.mi]]></description><category></category></item></channel></rss>