<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[low1101的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/low1101</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; low1101]]></copyright><item><title><![CDATA[File类总结]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104614254</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104614254</guid><author>low1101</author><pubDate>Mon, 02 Mar 2020 17:06:24 +0800</pubDate><description><![CDATA[File类代表一个特定的文件或者目录，并提供了若干方法对该文件或目录进行操作。

File类构造方法：
通过路径名创建一个新 File 实例

根据父目录路径File实例和子目录或文件路径创建一个新 File 实例

根据父目录路径和子目录或文件路径创建一个新 File 实例

示例：


public class Test {

	public static void main(String[]...]]></description><category></category></item><item><title><![CDATA[MyBatis框架一级缓存与二级缓存]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104608101</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104608101</guid><author>low1101</author><pubDate>Mon, 02 Mar 2020 12:14:55 +0800</pubDate><description><![CDATA[为了提升查询效率，提高用户体验，MyBatis提供了数据缓存支持，依据数据缓存的有效范围默认定义了一级缓存和二级缓存

一级缓存：

该级缓存默认开启，不能关闭；
	该级缓存为SqlSession级别的缓存，也称为本地缓存；
	以下4种情况将会导致该级缓存失效：
a、在不同SqlSession中查询数据,因为一级缓存是在一个sqlSession中生效的，所以那，如果在不同的sqlSession中...]]></description><category></category></item><item><title><![CDATA[SpringMVC的工作原理]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104598598</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104598598</guid><author>low1101</author><pubDate>Mon, 02 Mar 2020 11:08:45 +0800</pubDate><description><![CDATA[SpringMVC的工作原理图：



1、 用户发送请求至前端控制器DispatcherServlet。

2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)，生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、 Dispa...]]></description><category></category></item><item><title><![CDATA[SpringMVC：拦截器]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104598490</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104598490</guid><author>low1101</author><pubDate>Sun, 01 Mar 2020 19:47:04 +0800</pubDate><description><![CDATA[拦截器作用：将堆内存SpringMVC使用拦截器对请求进行拦截处理，以实现特定的功能。

1、自定义一个实现HandlerInterceptor接口的类并实现接口中定义的抽象方法，如下代码：


package com.jd.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.H...]]></description><category></category></item><item><title><![CDATA[SpringMVC之自定义视图及源码执行过程。]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104545285</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104545285</guid><author>low1101</author><pubDate>Thu, 27 Feb 2020 22:36:04 +0800</pubDate><description><![CDATA[1、定义自定义视图：将其放入IoC容器中，

①getContentType()：设置响应视图的类型

②render()：处理最终的响应操作，InternalResourceView的这个方法也继承自它的父类AbstractView，只不过它的父类又声明了一个抽象方法renderMergedOutputModel()，并且在render()方法中调用了该方法，因此在实际运行中调用的实际是Inte...]]></description><category></category></item><item><title><![CDATA[InternalResourceViewResolver工作流程]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104523582</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104523582</guid><author>low1101</author><pubDate>Wed, 26 Feb 2020 20:11:17 +0800</pubDate><description><![CDATA[浏览器发起请求——&gt;DispatcherServlet类doService(HttpServletRequest request, HttpServletResponse response)方法捕获该请求，该方法代码如下：
	
@Override
	protected void doService(HttpServletRequest request, HttpServletResponse...]]></description><category></category></item><item><title><![CDATA[SpringMVC SessionAttributes注解]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104512759</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104512759</guid><author>low1101</author><pubDate>Wed, 26 Feb 2020 11:33:02 +0800</pubDate><description><![CDATA[SessionAttributes注解：

作用：

将Map、ModelMap、Model或ModelAndView中的数据暂存到HttpSession中以使其可以在多个请求之间共用数据。

注意：

1、不过包括request。

2、只能作用于类上。

一、：

Map中put()方法：

通过value指定哪些属性放到Session.


@Controller
@SessionA...]]></description><category></category></item><item><title><![CDATA[SpringMVC数据格式化]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104511962</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104511962</guid><author>low1101</author><pubDate>Wed, 26 Feb 2020 10:50:25 +0800</pubDate><description><![CDATA[上一篇博客说明了数据转换器，但是操作略微麻烦，需在app.xml中进行配置，其实实现数据转换还有一种方式，就是通过注解的方式实现。

在需要转换的属性前加上所需类型的注解。

\



@DateTimeFormat注解：可对java.util.Date、java.util.Calendar、java.long.Long时间类型进行标注：

1、pattern 属性：类型为字符串。指定解析/格式...]]></description><category></category></item><item><title><![CDATA[SpringMvc数据类型转换器]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104511803</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104511803</guid><author>low1101</author><pubDate>Wed, 26 Feb 2020 10:25:07 +0800</pubDate><description><![CDATA[为什么许哟啊数据类型转换器？


ConversionService converters =
	java.lang.Boolean -&gt; java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@1b27f3d
	java.lang.Character -&gt; java.lan...]]></description><category></category></item><item><title><![CDATA[阐述一个请求在SpringMVC中的执行过程]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104363650</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104363650</guid><author>low1101</author><pubDate>Mon, 17 Feb 2020 19:55:39 +0800</pubDate><description><![CDATA[本来糊糊涂涂的对这个过程，但是晚上找到了一张图，看完图，再对应一下自己的理解，然后断点都接上了！



执行顺序如下：
1、在servletConfig中给servlet添加Qurl映射（将请求中匹配到的字符串截取掉,例如: index.html -&gt; index）

2、处理器映射器( HandlerMapping)根据此请求找到相应的Controller中的me thod

3、遍历所...]]></description><category></category></item><item><title><![CDATA[分析配置DispatcherServlet类时load-on-startup标签作用]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104361911</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104361911</guid><author>low1101</author><pubDate>Mon, 17 Feb 2020 19:32:30 +0800</pubDate><description><![CDATA[&lt;servlet&gt;
		&lt;servlet-name&gt;DispatcherServlet&lt;/servlet-name&gt;
		&lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
		&lt;init-param&gt;
			&lt...]]></description><category></category></item><item><title><![CDATA[mybatis——动态SQL]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104287547</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104287547</guid><author>low1101</author><pubDate>Wed, 12 Feb 2020 22:10:51 +0800</pubDate><description><![CDATA[我们在操作数据库时常常需要进行SQL语句的拼接。有了动态SQL之后，语句拼接更加容易操作。

下面我们通过一个例子实现动态sql应用：

一、创建工程如下所示：



二、user_info代码如下:


&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapp...]]></description><category></category></item><item><title><![CDATA[初识MyBatis]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104253538</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104253538</guid><author>low1101</author><pubDate>Mon, 10 Feb 2020 21:21:51 +0800</pubDate><description><![CDATA[本博客主要介绍为什么需要mybatis以及通过简单的例子介绍如何使用mybtis。

为什么需要MyBatis?

为了和数据库连接交互，我们通常将sql语句 写在java代码中，但是这种方式不利于后期维护，MyBatis就可以将sql语句和java代码分离，方便后期因为需求变动而对sql语句进行修改。

下面通过简单的例子进行实现:

一、创建MyMyBatis工程，导入jar包。



二、建...]]></description><category></category></item><item><title><![CDATA[如何在Spring中配置Quartz定时器]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104246333</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104246333</guid><author>low1101</author><pubDate>Mon, 10 Feb 2020 11:58:08 +0800</pubDate><description><![CDATA[定时器：定时器分为两种，TimerTask和Quartz，常用的是Quartz的定时器（下载地址）

一、创建java工程，创建lib包，导入如下jar包：



注意：quartzjar包需要依赖slf4j使用。二、 创建BeanJob类和Test类

代码分别如下：


package com.jd.job;

import org.quartz.JobExecutionContext;
i...]]></description><category></category></item><item><title><![CDATA[Spring事务]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104233692</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104233692</guid><author>low1101</author><pubDate>Sun, 09 Feb 2020 12:44:45 +0800</pubDate><description><![CDATA[事务的作用：保持数据的一致性和完整性。

在学习数据库中，也到事务，只不过每个事务都需要，开启事务、提交事务、回滚事务、释放资源的代码，这种方式叫做“编程式事务管理”。

那么另一种事务管理方式，将事务管理代码从业务方法中分离出来，以声明的方式来实现事务管理，Spring声明式事务管理建立在AOP基础之上，是一个典型的横切关注点，通过环绕增强来实现，其原理是对方法前后进行拦截，然后在目标方法开始之...]]></description><category></category></item><item><title><![CDATA[JdbcTemplate]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104232468</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104232468</guid><author>low1101</author><pubDate>Sun, 09 Feb 2020 11:43:06 +0800</pubDate><description><![CDATA[JdbcTemplate是什么？

字面意思就是Java datebase connectivity template——&gt;java数据库连接方法模板。

也是Spring JDBC的核心类，借助该类提供的方法可以很方便的实现数据的增删改查。

下边通过一个例子了解一下JdbcTemplate增删改查基础用法：

已知有三个表，分别是：书籍、钱包、订单，通过JdbcTemplate实现书籍库...]]></description><category></category></item><item><title><![CDATA[数据库连接池]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104213751</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104213751</guid><author>low1101</author><pubDate>Fri, 07 Feb 2020 18:40:53 +0800</pubDate><description><![CDATA[一、数据库连接池建立的原因：

未使用数据库连接池时，每次连接数据库，都需要新建一个数据库连接，结束时需要释放数据库连接，操作频繁占用大量的内存资源，所以建立数据库连接池，用来减少数据库的建立和释放。

例子：就像共享单车，用完车后归还，其他需要车的人等待，有闲置的车后，才可以进行使用（连接），这样就不必要每个人都拥有一辆车，大大减少了社会资源的浪费。也提高了车的利用率。

二、什么是数据库连接池...]]></description><category></category></item><item><title><![CDATA[Cannot Resolve Symbol xxx 错误解决]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104202423</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104202423</guid><author>low1101</author><pubDate>Thu, 06 Feb 2020 21:37:27 +0800</pubDate><description><![CDATA[我又来记录了........


新导入IDEA的项目，但是提示很多Cannot Resolve Symbol xxx错误，主要是SpringMVC的注释，还有导入的jar包，都会报这个错误。在网上找到一些方法，最后用下种方法解决：

1、IDEA默认使用的系统自带的maven3，所以先将maven改为自己配置的maven。

操作如下：







2、点击clean。



3、点击in...]]></description><category></category></item><item><title><![CDATA[小米手机解锁BL以及获取Root权限（开发版）]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104194580</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104194580</guid><author>low1101</author><pubDate>Thu, 06 Feb 2020 13:17:35 +0800</pubDate><description><![CDATA[已经很久没有刷机了，现在有需要，就再刷一下。想起来自己以前刷机很流畅，现在还得查来查去的。所以就写了以下教程，主要是记录一下自己踩过的一些坑。

我刷的手机是小米8，所以以下教程都是小米8为例，其他手机可能还有细微不同之处.......

一、解锁BL：这是官方教程，很详细！

我就是在教程中，把自己踩过的一些坑给罗列一下，增加一下自己的印象。

解锁Bootloader的步骤：

解锁前，请将版...]]></description><category></category></item><item><title><![CDATA[AOP的执行时机]]></title><link>https://blog.youkuaiyun.com/low1101/article/details/104175446</link><guid>https://blog.youkuaiyun.com/low1101/article/details/104175446</guid><author>low1101</author><pubDate>Tue, 04 Feb 2020 21:39:03 +0800</pubDate><description><![CDATA[执行时机，也就是AOP的执行顺序嘛。了解AOP中aspect的执行顺序，有助于我们更好的使用AOP。

下面我们通过一个见到那的例子去了解AOP的执行顺序。

按照以下顺序使用AOP：

1、添加jar包：



2、添加spring xml文件，在文件中配置，为目标对象生成动态代理对象。如图所示：

配置代码如下：


&lt;?xml version="1.0" encoding="UTF-8...]]></description><category></category></item></channel></rss>