<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[One_castle的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/One_castle</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; One_castle]]></copyright><item><title><![CDATA[【Java】常见的IO模型]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115725850</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115725850</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 15:17:52 +0800</pubDate><description><![CDATA[文章目录I/O何为 I/O?有哪些常见的 IO 模型?同步阻塞 IO（Blocking IO）同步非阻塞 IO（None Blocking IO）IO 多路复用（I/O multiplexing）异步 IO 模型（asynchronous IO）Java 中 3 种常见 IO 模型BIO (Blocking I/O)NIO (New I/O)AIO (Asynchronous I/O)阻塞和非阻塞IO异步和同步IO
I/O
何为 I/O?
从应用程序的角度来解读一下 I/O。
根据大学里学到的操作系统相关的]]></description><category></category></item><item><title><![CDATA[【Java】代理模式]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115725674</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115725674</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 15:03:05 +0800</pubDate><description><![CDATA[文章目录代理模式静态代理实现步骤实现实例动态代理1. JDK 动态代理技术实现步骤实现例子2. CGLIB 动态代理机制实现步骤实现例子3. 总结不同点静态代理和动态代理的对比
代理模式
简单来说：就是使用代理对象来替代对真实对象的访问，这样就可以在不修改原目标对象的前提下，提供额外的功能操作，扩展目标对象的功能
代理模式的主要作用就是扩展目标对象的功能，比如说在目标对象的某个方法前后你可以增加一些自定义的操作
代理模式主要有两种实现的方式：

静态代理
动态代理（反射的应用

静态代理
实现步骤

创建一]]></description><category></category></item><item><title><![CDATA[【Java】IO流 （超详细！！）]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115724614</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115724614</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 14:55:27 +0800</pubDate><description><![CDATA[Java IO流Java IO流IO 流的分类按照流的方向输入流输出流按照数据单位的不同字节流字符流根据功能不同节点流处理流IO 流的架构四个基本抽象类InputStream 字节输入流OutputStream 字节输入流Reader 字符输入流Writer 字符输出流总结IO 流特性IO 流常用对象FileInputStreamFileInputStreamByteArrayInputStreamPipedInputStreamFilterInputStreamBufferedInputStreamDat]]></description><category></category></item><item><title><![CDATA[【Java】可变参数]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115720205</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115720205</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 11:47:39 +0800</pubDate><description><![CDATA[可变参数
使用方法

当方法的参数列表数据类型已经确定，但是参数的个数不确定，那么就可以使用可变参数

修饰符 返回值类型 方法名（数据类型...变量名）{}

底层原理

可变参数就是一个数组，根据传递参数个数的不同，会创建不同长度的数组，来存储这些参数传递的参数个数，可以是0个，1个，2个 …

例如
public class testClass{
    public static void mian(String[] args){
        int i = add(10,20);
    }
]]></description><category></category></item><item><title><![CDATA[【Java】增强for的使用]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115720151</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115720151</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 11:42:06 +0800</pubDate><description><![CDATA[增强for
原理：
底层使用的也是迭代器。使用for循环进行简化
使用范围
所有的单列集合都可以使用增强for（只能是集合和数组）

单列集合： ArrayList、Linkedlist、Vector

使用方法

例 1

int[] arr = {1,2,3,4,5};
for(int i : arr){
	System.out.println(i);
}


例 2

ArrayList&lt;String&gt; list = new ArrayList&lt;&gt;();
list.add("1]]></description><category></category></item><item><title><![CDATA[【Mybatis】Mybatis传递多个参数]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115719029</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115719029</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 11:04:05 +0800</pubDate><description><![CDATA[【Mybatis】Mybatis传递多个参数
在使用Mybatis过程中，经常会碰到传入多个参数的情形。
1. 多参数
基本的多参数传递方式：
xxxMapper.class
public List&lt;XXXBean&gt; getXXXBeanList(String param1, String parm2);  

xxxMapper.xml
&lt;select id="getXXXBeanList" resultType="XXBean"&gt;
　　select t.* from tableN]]></description><category></category></item><item><title><![CDATA[【Mybatis】传入参数类型为Map]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115718991</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115718991</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 11:02:21 +0800</pubDate><description><![CDATA[【Mybatis】传入参数类型为Map
有时候，我们可以的dao层的方法需要传入两个不同类型的参数进行操作，我们可以借助万能的Map来进行传参。
1. 我们对dao层的Mapper方法进行传参，需要注意：需要添加注解
例如：
public AdminRole isSameNameByRidAndName(@Param("map") Map&lt;String,Object&gt; map);

需要特别注意注解@Param(“map”)
2. 然后我们在Mapper.xml文件进行编写sql语句
&lt;s]]></description><category></category></item><item><title><![CDATA[【Mybatis】Mapper文件中sql不等于的写法]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115718961</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115718961</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 11:01:47 +0800</pubDate><description><![CDATA[【Mybatis】Mapper文件中sql不等于的写法
认识误区：在xml文件中，是 不能直接使用 &lt; 、&gt;、&amp; 的。因为会被语法检查而报错。
正确使用的两种方法
1. 第一种：转义
1. 小于 &lt; &amp;lt;
2. 大于 &gt; &amp;gt;
3. 不等于 &lt;&gt; &amp;lt;&amp;gt;

2. 第二种：&lt;![CDATA[]]&gt;
&lt;![CDATA[]]&gt;这个标记所包含的内容即表示为 纯文本
实际例子：
sql语句：
sele]]></description><category></category></item><item><title><![CDATA[【Mybatis】增(insert)删(delete)改(update)查(select)的返回值]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115718912</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115718912</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 11:00:18 +0800</pubDate><description><![CDATA[【Mybatis】增(insert)删(delete)改(update)查(select)的返回值
select
&lt;select id="getUserByUserName" resultType="User"&gt;
    select * from User where username = #{userName}
&lt;/select&gt;

select的返回值即为 resultType 或者 resultMap
update
&lt;update id="resetPassword" ]]></description><category></category></item><item><title><![CDATA[【Mybatis】Mapper.xml中的${}与#{}的区别]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/115718858</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/115718858</guid><author>One_castle</author><pubDate>Thu, 15 Apr 2021 10:59:21 +0800</pubDate><description><![CDATA[【Mybatis】Mapper.xml中的${}与#{}的区别

#{}是预编译处理，而${}则是字符串替换
Mybatis在处理#{}时，会将sql中的#{}替换成?号，会自动调用PreparedStatement的set方法来进行赋值。
Mybatis在处理时，其实就是将{}时，其实就是将时，其实就是将{}直接替换成变量的值。（有sql注入的风险）
使用#{}可以有效的防止sql注入，可以提高系统安全性
${}这种写法参数默认是传字符串
#{}则可以取Long、Integer之类


...]]></description><category></category></item><item><title><![CDATA[【springboot】配置interceptor拦截器]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113393954</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113393954</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 16:09:32 +0800</pubDate><description><![CDATA[【springboot】配置interceptor拦截器
springboot如何配置自定义的Filter过滤器？
一、实现步骤

实现拦截器接口
将拦截器注册到spring容器中

二、具体实现例子


实现拦截器接口，例如登陆拦截器
/**
 * 登陆检查，
 */
public class LoginHandlerInterceptor implements HandlerInterceptor {
    //在业务处理器处理请求之前被调用
    @Override
    public bool]]></description><category></category></item><item><title><![CDATA[【springboot】上传文件大小问题]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113393716</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113393716</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 16:06:02 +0800</pubDate><description><![CDATA[【springboot】org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException
问题描述
使用springboot实现上传文件功能的时候，由于上传的文件大小较大（Tomcat默认允许上传的文件最大为1MB），超过1MB的文件进行上传程序就会报错：

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceede]]></description><category></category></item><item><title><![CDATA[【springboot】静态资源访问路径配置]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113392904</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113392904</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 16:02:06 +0800</pubDate><description><![CDATA[【springboot】静态资源访问路径配置
简介
springboot 默认为我们提供了静态资源处理，使用WebMvcAutoConfiguration中的配置各种属性。
在一般情况下，springboot提供的默认配置方式能够满足需求，如果想要完全控制WebMvc，那么就需要在@Configuration注解的配置类上增加@EnableWebMvc，这样WebMvcConfiguration中的配置就无法生效，所有配置都按照你自定义的进行生效。
但是，通常情况下，我们都是使用springboot的默认配]]></description><category></category></item><item><title><![CDATA[【Mybatis】Parameter ‘username‘ not found. Available parameters are [1, 0, param1, param2\]]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113392261</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113392261</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 15:48:19 +0800</pubDate><description><![CDATA[Parameter ‘username’ not found. Available parameters are [1, 0, param1, param2]
xxxMapper.java存在方法想要接收多个参数，可以使用两种方法


可以使用@Param()注解进行制定对应的参数
    /*
    *  Mybatis 中对于多个参数，其无法明确对应关系，需要加上@Param注解进行指定
    * */
    public User getUserByUsernameAndPassword(@Pa]]></description><category></category></item><item><title><![CDATA[【Mybatis】mybatis如何实现分页]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113391948</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113391948</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 15:46:28 +0800</pubDate><description><![CDATA[【Mybatis】mybatis如何实现分页
mysql分页功能原理
实现分页必要条件

必须知道某一页从哪里开始到哪里结束
必须知道页面的大小，也就是指定每页要显示多少条数据量

mysql分页的过程
注意:mysql的计数是从0开始的，也就是说第一条数据对应的下标应该为0

假设我们现在需要一页显示10条数据，
那么第0页的10条数据的编号就是 0 1 2 3 4 5 6 7 8 9
那么第1页的数据的编号是10 11 12 13 14 15 16 17 18 19
那么第2页的数据编号就是20 21 ]]></description><category></category></item><item><title><![CDATA[【Mybatis】foreach的使用]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113391521</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113391521</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 15:39:11 +0800</pubDate><description><![CDATA[【Mybatis】foreach的使用
foreach的主要用在构建in条件中，它可以在SQL语句中进行迭代一个集合。
foreach元素的属性主要有 item，index，collection，open，separator，close。
item表示集合中每一个元素进行迭代时的别名，
index指 定一个名字，用于表示在迭代过程中，每次迭代到的位置，
open表示该语句以什么开始，
separator表示在每次进行迭代之间以什么符号作为分隔 符，
close表示以什么结束。

在使用foreach的时候最]]></description><category></category></item><item><title><![CDATA[【Java】json JavaBean]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113391113</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113391113</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 15:34:42 +0800</pubDate><description><![CDATA[FastJson中String、Json、JavaBean
本文来源为：https://www.cnblogs.com/cdf-opensource-007/p/7106018.html
FastJson提供的三个主要类
JSON
fastJson 的解析器，用于JSON格式字符串与JSON对象及javaBean之间的转换。
JSONObject
fastJson提供的json对象。
JSONArray
fastJson提供json数组对象。
JSONObject与JSONArray
SONObject和J]]></description><category></category></item><item><title><![CDATA[【Java】classpath到底是指什么]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/113390444</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/113390444</guid><author>One_castle</author><pubDate>Fri, 29 Jan 2021 15:27:00 +0800</pubDate><description><![CDATA[classpath类路径到底指的是什么
详细解释

classpath就是class的path，也就是类文件（*.class）的路径


ssm的项目结构如下（为maven项目结构）

project
	|--src
	|  |--main
	|  |	 |--java
	|  |	 |--resources
	|  |	 |--webapp
	|  |		 |--WEB-INF
	|  |			 |--views
	|  |			 |--web.xml
	|  |--test
	|  	 |--java
]]></description><category></category></item><item><title><![CDATA[【springboot】org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/109156130</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/109156130</guid><author>One_castle</author><pubDate>Mon, 19 Oct 2020 10:36:13 +0800</pubDate><description><![CDATA[【springboot】org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException
问题描述
使用springboot实现上传文件功能的时候，由于上传的文件大小较大（Tomcat默认允许上传的文件最大为1MB），超过1MB的文件进行上传程序就会报错：

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceede]]></description><category></category></item><item><title><![CDATA[【Mybatis】mybatis如何实现分页]]></title><link>https://blog.youkuaiyun.com/One_castle/article/details/109120261</link><guid>https://blog.youkuaiyun.com/One_castle/article/details/109120261</guid><author>One_castle</author><pubDate>Fri, 16 Oct 2020 17:02:40 +0800</pubDate><description><![CDATA[【Mybatis】mybatis如何实现分页
mysql分页功能原理
实现分页必要条件

必须知道某一页从哪里开始到哪里结束
必须知道页面的大小，也就是指定每页要显示多少条数据量

mysql分页的过程
注意:mysql的计数是从0开始的，也就是说第一条数据对应的下标应该为0

假设我们现在需要一页显示10条数据，
那么第0页的10条数据的编号就是 0 1 2 3 4 5 6 7 8 9
那么第1页的数据的编号是10 11 12 13 14 15 16 17 18 19
那么第2页的数据编号就是20 21 ]]></description><category></category></item></channel></rss>