<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Just__2009的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Just__2009</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Just__2009]]></copyright><item><title><![CDATA[SQL-表联结]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109029893</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109029893</guid><author>Just__2009</author><pubDate>Tue, 23 Mar 2021 00:23:47 +0800</pubDate><description><![CDATA[表联结是一种查询机制，用来在select语句中关联表进行查询，称为联结。
Where 和 Join
注意：如果没有where条件，那么第一个表中的每一行数据都会与第二个表中的每一行数据进行匹配，不管逻辑是否匹配。这种结果为第一个表中的数据乘以第二个表中的数据，称为笛卡尔积。
select subject_name,count(stu_id) as 考试人数
	from subject as sub
	where subject.subject_id = assessment.subject_id 
	gro]]></description><category></category></item><item><title><![CDATA[MyBatis]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/110239897</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/110239897</guid><author>Just__2009</author><pubDate>Tue, 26 Jan 2021 22:46:56 +0800</pubDate><description><![CDATA[搭建MyBatis

添加依赖包

&lt;dependency&gt;
	&lt;groupId&gt;org.mybatis&lt;/groupId&gt;
	&lt;artifactId&gt;mybatis&lt;/artifactId&gt;
	&lt;version&gt;3.4.6&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
	&lt;groupId&gt;mysql&lt;/groupId&gt;
	&lt;artifactI]]></description><category></category></item><item><title><![CDATA[Spring-MVC]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109899892</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109899892</guid><author>Just__2009</author><pubDate>Fri, 27 Nov 2020 18:20:41 +0800</pubDate><description><![CDATA[核心组件

DispatcherServlet：作为前端控制器，整个流程控制的中心，控制其它组件执行，统一调度，降低组件之间的耦合性，提高每个组件的扩展性。
DispatcherServlet主要用作职责调度工作，本身主要用于控制流程，主要职责如下：

文件上传解析，如果请求类型是multipart将通过MultipartResolver进行文件上传解析；
通过HandlerMapping，将请求映射到处理器（返回一个HandlerExecutionChain，它包括一个处理器、多个
HandlerInte]]></description><category></category></item><item><title><![CDATA[Spring]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109706929</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109706929</guid><author>Just__2009</author><pubDate>Sat, 21 Nov 2020 15:49:34 +0800</pubDate><description><![CDATA[Spring是一个开放源代码的设计层面框架，他解决的是业务逻辑层和其他各层的松耦合问题，因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架，由Rod Johnson创建。简单来说，Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
spring 特点
spring的核心模块
spring中的IOC
IOC( Inverse of Control)控制反转。是降低对象之间的耦合关系的设计思想。
DI(Depen]]></description><category></category></item><item><title><![CDATA[MangoDB]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109680094</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109680094</guid><author>Just__2009</author><pubDate>Sun, 15 Nov 2020 17:38:53 +0800</pubDate><description><![CDATA[mongodb数据类型
null
null用于表示空值或不存在的字段。
{"x" : null}
布尔类型
布尔型数据有true和false两个值。
{"x" : true}
数值类型
在Mongo shell中，默认使用64位浮点型数据。因此，会有以下两种数值形式：
{"x" : 2.32}//或{"x" : 2}
对于整数类型，可以使用NumberInt()(位有符号整型)或NumberLong()(8位有符号整型)方法进行转
换。示例如下：
{"x" : NumberInt(2)} {"x" : Nu]]></description><category></category></item><item><title><![CDATA[Redis-分布式锁]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109666434</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109666434</guid><author>Just__2009</author><pubDate>Fri, 13 Nov 2020 16:59:44 +0800</pubDate><description><![CDATA[1.系统是一个分布式系统
2.共享资源（各个系统访问同一个资源，资源的载体可能是传统关系）

]]></description><category></category></item><item><title><![CDATA[Redis-缓存]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109652091</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109652091</guid><author>Just__2009</author><pubDate>Thu, 12 Nov 2020 19:15:16 +0800</pubDate><description><![CDATA[什么是缓存?
缓存是在第一次加载某些可能会复用数据的时候，在加载数据的同时，将数据放到一个指定的地点做保存。再下次加载的时候，从这个指定地点去取数据。这里加缓存是有一个前提的，就是从这个地方取数据，比从数据源取数据要快的多。
java狭义一些的缓存，主要是指三大类

虚拟机缓存（ehcache，JBoss Cache）
分布式缓存（redis，memcache）
数据库缓存
正常来说，速度由上到下依次减慢

缓存雪崩
产生原因
当缓存失效且又没有从数据库得到新的数据时，大量用户直接向数据库索要数据，导致服务]]></description><category></category></item><item><title><![CDATA[JavaWeb-多表关系]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109360062</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109360062</guid><author>Just__2009</author><pubDate>Thu, 29 Oct 2020 16:11:04 +0800</pubDate><description><![CDATA[一对多
建立两表之间的属性关系
数据表是通过外键列来维系两表关系。实体类是通过属性来维系两表关系。一对多，是以一方为主，所以我们在一方添加多方的集合作为一个属性。
例如：年级和学生是一对多关系，那么在年级表中创建一个集合可以添加多方。
Grade.java
private List&lt;Student&gt; studentList;
public List&lt;Student&gt; getStudentList() {
return studentList;
}
public void setStu]]></description><category></category></item><item><title><![CDATA[JavaWeb-文件上传和下载]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109358989</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109358989</guid><author>Just__2009</author><pubDate>Thu, 29 Oct 2020 14:35:22 +0800</pubDate><description><![CDATA[1.导入smartupload.jar 包
2.准备上传页面

form表单的标签中需要添加enctype属性
提交方式必须是post

&lt;form method="post" action="/upload" enctype="multipart/form-data"&gt;

3.获取数据/保存文件
@WebServlet(value="/upload")
public class uploadServlet extends HttpServlet {
    @Override
    prot]]></description><category></category></item><item><title><![CDATA[JavaWeb-Ajax]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109309162</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109309162</guid><author>Just__2009</author><pubDate>Tue, 27 Oct 2020 17:23:46 +0800</pubDate><description><![CDATA[AJAX = Asynchronous JavaScript and XML（异步的 JavaScript 和 XML）。
AJAX 不是新的编程语言，而是一种使用现有标准的新方法。
AJAX 是与服务器交换数据并更新部分网页的艺术，在不重新加载整个页面的情况下。
Ajax所包含的技术
Ajax并非是一种新技术，而是将原有技术结合
1.使用CSS和XHTML来表示。
2.使用DOM模型来交互和动态显示。
3.使用XMLHttpRequest来和服务器进行异步通信。
4.使用javascript来绑定和调用。]]></description><category></category></item><item><title><![CDATA[JavaWeb-监听器]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109279625</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109279625</guid><author>Just__2009</author><pubDate>Sun, 25 Oct 2020 22:07:16 +0800</pubDate><description><![CDATA[什么是监听器？
监听器(Listener)是一个监听某个域对象的状态变化的组件。
事件对象:request、session、servletContext。
注册监听器：将监听器与事件源绑定。
响应行为：监听到事件源的状态变化所作出的行为。
监听器分类？
监听对象的创建与销毁：ServletRequestListener、HttpSessionListener、ServletContextListener
监听对象内属性变化：ServletRequestAttributeListener、HttpSessio]]></description><category></category></item><item><title><![CDATA[JavaWeb-过滤器]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109279098</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109279098</guid><author>Just__2009</author><pubDate>Sun, 25 Oct 2020 21:50:15 +0800</pubDate><description><![CDATA[什么是过滤器？
过滤器实际上就是对web资源进行拦截，做一些处理后再交给下一个过滤器或servlet处理，通常都是用来拦截request进行处理的，也可以对返回的response进行拦截处理。
过滤器语法格式
创建一个类实现Filter接口
public class MyFilter implements Filter{}

重写接口中的方法
public void destroy() { //销毁的方法}
public void doFilter(ServletRequest req, ServletRe]]></description><category></category></item><item><title><![CDATA[JavaWeb-Cookie]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109248184</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109248184</guid><author>Just__2009</author><pubDate>Sat, 24 Oct 2020 19:57:24 +0800</pubDate><description><![CDATA[什么是会话跟踪技术
会话跟踪是Web程序中常用的技术，用来跟踪用户的整个会话。保持对用户会话期间的数据管理。常用的会话跟踪技术是Cookie与Session。
Cookie通过在客户端记录信息确定用户身份。
Session通过在服务器端记录信息确定用户身份。
什么是Cookie
Cookie是客户端(一般指浏览器)请求服务器后,服务器发给客户端的一个辨认标识，保存在客户端，当客户端再次
向服务器发送请求时，会携带着这个辨认标识，服务器就可以通过这个标识来识别客户端的身份或状态等。
Cookie的作用：跟踪会]]></description><category></category></item><item><title><![CDATA[JavaWeb-JSP]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109229431</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109229431</guid><author>Just__2009</author><pubDate>Fri, 23 Oct 2020 00:52:58 +0800</pubDate><description><![CDATA[什么是JSP？
JSP全名为Java Server Pages，中文名叫java服务器页面，其根本是一个简化的Servlet设计。JSP就是在HTML页面中嵌入了java代码。
JSP将网页逻辑与网页设计的显示分离，支持可重用的基于组件的设计，使基于Web的应用程序的开发变得迅速和
容易。
*.html 静态页面(包含固定的页面内容)
*.jsp 动态页面(页面数据可以动态更新,支持嵌套java代码和html代码)
嵌套Java代码
声明标签 &lt;%!变量或者方法声明%&gt;
表达式标签 &lt;%=]]></description><category></category></item><item><title><![CDATA[Java-JDBC]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109102763</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109102763</guid><author>Just__2009</author><pubDate>Thu, 22 Oct 2020 22:41:32 +0800</pubDate><description><![CDATA[Java DataBase Connectivity Java数据库连接
JDBC 是一套标准，是Java与个大数据库厂商共同制定的一套接口，这套接口由个大数据库厂商进行了实现。
1. 导入Jar包
2. 连接数据库流程
public class Demo1 {
    public static void createTable() throws ClassNotFoundException, SQLException {
        //1.加载数据库驱动（可以省略，但是在JavaEE的Web项目中]]></description><category></category></item><item><title><![CDATA[JavaWeb-Servlet]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109210743</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109210743</guid><author>Just__2009</author><pubDate>Thu, 22 Oct 2020 16:55:05 +0800</pubDate><description><![CDATA[Servlet(Servlet Applet),全程Java Servlet。是java编写的服务器端程序，主要功能是在交互式地浏览和修改数据，生成动态web内容。
工作模式：

客户端发送至服务器。
服务器启动并调用Servlet，Servlet根据用户客户端生成响应内容并传给服务器。
服务器响应返回客户端。

配置映射关系
&lt;servlet&gt;
&lt;servlet-name&gt;自定义名称&lt;/servlet-name&gt;
&lt;servlet-class&gt;处理请求的类的]]></description><category></category></item><item><title><![CDATA[JDBC-连接池]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109186179</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109186179</guid><author>Just__2009</author><pubDate>Tue, 20 Oct 2020 20:49:57 +0800</pubDate><description><![CDATA[连接池（DataSource）

当我们需要使用连接时，可以不用创建连接。可以直接从连接池获取连接。当连接池中存在控线连接时，将会给程序分配控线连接使用。
当连接池中不存在空闲连接，并且连接池未满时，创建新的连接给程序使用，并在程序使用完毕后缓存连接。
当连接池中不存在空闲连接，并且连接池已满时，则排队等候空闲连接出现。

无论是否使用连接池，都应该在操作完毕后释放连接（调用close()）。
从连接池中调用的连接，当调用close（）方法。连接并不是被关闭，而是重新放回连接池，作为空闲连接等待使用。
DB]]></description><category></category></item><item><title><![CDATA[JDBC-事务]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109170367</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109170367</guid><author>Just__2009</author><pubDate>Tue, 20 Oct 2020 18:03:15 +0800</pubDate><description><![CDATA[通过命令行进行操作
开启事务: start transaction;
回滚 : rollback; --此次事务中所有的sql操作, 放弃.
提交 : commit; --此次事务中所有的sql操作, 作为一个整体, 提交.
通过Java进行操作
在java中，对数据库的操作默认是自动提交的。如果想开启一个事务，需要将自动提交关闭。
开启事务: conn.setAutoCommit(false);
回滚事务: conn.rollback();
提交事务: conn.commit();
public stat]]></description><category></category></item><item><title><![CDATA[MySQL-SQL注入问题（预编译处理）]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109126437</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109126437</guid><author>Just__2009</author><pubDate>Mon, 19 Oct 2020 22:47:35 +0800</pubDate><description><![CDATA[当服务器向数据发送访问请求，在sql语句中夹杂特殊字符，在与查询语句进行拼接时，导致sql语句产生了歧义。
当用户登陆时，加入输入的帐号或密码并不存在，但是在帐号或密码中输入如下：
a' or 'a'='a

此时结果会显示为登陆成功。
原查询语句：
select name from users where username=‘帐号’ and password = ‘密码’
拼接后
select name from users where username=‘123’	and password = ‘a’ ]]></description><category></category></item><item><title><![CDATA[MySQL-慢查询 SQL优化]]></title><link>https://blog.youkuaiyun.com/Just__2009/article/details/109060343</link><guid>https://blog.youkuaiyun.com/Just__2009/article/details/109060343</guid><author>Just__2009</author><pubDate>Mon, 19 Oct 2020 22:46:36 +0800</pubDate><description><![CDATA[慢查询是什么？
MySQL的慢查询全名为慢查询日志，是MySQL提供的一种日志记录，用来记录在MySQL中响应时间超过阈值的语句。
默认情况下MySQL数据库并不会启动慢查询日志，需要手动来设置参数。
在调优时如果不需要，则不启动该参数，开启慢查询日志会带来一定的性能影响。
如何配置慢查询？
--查看慢查询的配置信息
mysql&gt;show variables like '%slow%';

--查看慢查询的时间定义
mysql&gt;show varables like 'long_query_tim]]></description><category></category></item></channel></rss>