<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Shuys的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Shuys</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Shuys]]></copyright><item><title><![CDATA[SQL获取前五的产品]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/125277227</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/125277227</guid><author>Shuys</author><pubDate>Tue, 14 Jun 2022 14:20:36 +0800</pubDate><description><![CDATA[SQL]]></description><category></category></item><item><title><![CDATA[多线程的生产者与消费者案例]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/120552857</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/120552857</guid><author>Shuys</author><pubDate>Wed, 29 Sep 2021 17:32:39 +0800</pubDate><description><![CDATA[多线程的虚假唤醒
package com.shuys.juc;

/**
*在此案例中多线程执行的时候,在使用i判断条件,进入wait()方法后,及时中断
等待也不会再继续进行判断,而while()会重新进行判断执行
**/
class Air {
    private int h=0;
    public synchronized void increment() throws Exception{
    //如果用if作为条件判断则会产生虚假唤醒
        while (h != 0) {
]]></description><category></category></item><item><title><![CDATA[预览实现]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/108773710</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/108773710</guid><author>Shuys</author><pubDate>Thu, 24 Sep 2020 14:36:30 +0800</pubDate><description><![CDATA[@RequestMapping("previewAttach")
    @ResponseBody
    public void previewAttach(HttpServletResponse response, @RequestParam(value = "attrId") String attrId, String targetField) {
        StdAttachment attachment = stdAttachmentService.getById(attrId);
   ]]></description><category></category></item><item><title><![CDATA[下载实现]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/108773203</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/108773203</guid><author>Shuys</author><pubDate>Thu, 24 Sep 2020 14:30:00 +0800</pubDate><description><![CDATA[@RequestMapping(value = "/downloadFile")
    public void downloadFile(HttpServletResponse response, String attrId) {
        StdAttachment attachment = stdAttachmentService.getById(attrId);
        String url = attachment.getUrl() + attachment.getFilePath(]]></description><category></category></item><item><title><![CDATA[excel导出实现步骤]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/108638686</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/108638686</guid><author>Shuys</author><pubDate>Thu, 17 Sep 2020 11:14:46 +0800</pubDate><description><![CDATA[Excel实体类
package common.excel;

import lombok.Data;
import java.util.List;
import java.util.Map;

/**
 * @Description: TODO
 * @author: lizhenzhen
 * @date: 2020/6/8 16:59
 */
@Data
public class ExcelExportDataInfo {

    /**
     * Excel标题
     */
    pri]]></description><category></category></item><item><title><![CDATA[Git 教程]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107589515</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107589515</guid><author>Shuys</author><pubDate>Sun, 26 Jul 2020 10:42:43 +0800</pubDate><description><![CDATA[Git 教程
Git 是一个开源的分布式版本控制系统，用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同，它采用了分布式版本库的方式，不必服务器端软件支持。
Git 与 SVN 区别
Git 不仅仅是个版本控制系统，它也是个内容管理系统(CMS)，工作管理系统等。
如果你是一个具有使用 SVN 背景的人，你需要做一定的思想转换，来适应 G]]></description><category></category></item><item><title><![CDATA[Hibernate相关API]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107577934</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107577934</guid><author>Shuys</author><pubDate>Sat, 25 Jul 2020 16:02:24 +0800</pubDate><description><![CDATA[Configuration API
//到srC下面找到名称是hibernate. cfg . xml
//在hibernate里面封装对象
Configuration cfg = new Configuration();
cfg. configure();
(1)到src下面找到名称hibernate.cfg.xml配置文件，创建对象，把配置文件放到对象里面(加载核心配置文件)
SessionFactory (重点)
使用configuration对象创建sessionFactory对象
(1)创建ses]]></description><category></category></item><item><title><![CDATA[Hibernate框架概述及配置]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107573822</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107573822</guid><author>Shuys</author><pubDate>Sat, 25 Jul 2020 10:51:04 +0800</pubDate><description><![CDATA[什么是hibernate框架(重点)
1 hibernate框架应用在javaee三层结构中dao层框架
2在dao层里面做对数据库crud操作，使用hibernate实现crud操作，hibernate 底层代
码就是jdbc, hibernate 对jdbc 进行封装，使用hibernate好处，不需要写复杂jdbc代码了心
不需要写sgl语句实现。
3 hibernate开源的轻量级的框架
什么是brm思想。
1 hibernate使用orm思想对数据库进行crud操作+
2在web阶段学习javab]]></description><category></category></item><item><title><![CDATA[声明式事务配置]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107572103</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107572103</guid><author>Shuys</author><pubDate>Sat, 25 Jul 2020 00:22:17 +0800</pubDate><description><![CDATA[声明式事务基于Aspectil XML方式
注:基于[ransalctionProxyFactoryBean.代理的方式是比较古老的方式,我们在这里就不赘述了。
基于XML方式的配置:
删除applicationContext.xml中的事务管理模版的配置，就是下面的配置:
&lt;!--事务管理的模板--&gt;
&lt;bean id="transacti onTemplate"
class="org. springframework . transacti on. support .Transacti]]></description><category></category></item><item><title><![CDATA[编程式事务配置]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107571443</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107571443</guid><author>Shuys</author><pubDate>Sat, 25 Jul 2020 00:09:48 +0800</pubDate><description><![CDATA[编程式事务有两种配置方式
1.在applicationContext.xml中添加事务管理器和事务管理器模版的配置
&lt;context :component-scan base-package=" com.dk" /&gt;
&lt;bean id="dataSource" class="org 。apache . commons . dbcp . BasicDataSource"&gt; 
&lt;!-- JDBC连接池--&gt;
&lt;!-- 指定基本信息: jdbc的驱动名、 url、 数据库]]></description><category></category></item><item><title><![CDATA[事务]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107570535</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107570535</guid><author>Shuys</author><pubDate>Fri, 24 Jul 2020 22:53:07 +0800</pubDate><description><![CDATA[事务的四大特性(一原持久隔离)
1、 原子性(Atomicity) :事务中所有操作是不可再分割的原子单位。事务中所有操作要么全部执行成功，要么
全部执行失败。
2、一致性 (Consistency) :事务执行后，数据库状态与其它业务规则保持一致。 如转账业务，无论事务执行
成功与否，参与转账的两个账号余额之和应该是不变的。
3、 隔离性(Isolation) :隔离性是指在并发操作中，不同事务之间应该隔离开来，使每个并发中的事务不会相
互干扰。
4、持久性 (Durability) : -旦事务提交成功]]></description><category></category></item><item><title><![CDATA[MyBatis其他知识点]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107556033</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107556033</guid><author>Shuys</author><pubDate>Fri, 24 Jul 2020 10:51:12 +0800</pubDate><description><![CDATA[使用MyBatis实现查询功能
只要是使用MyBatis框架开发数据操作功能，都是编写抽象方法及对应的SQL语句！

【更新】关于抽象方法的声明原则
如果即将执行的是INSERT、UPDATE、DELETE类型的操作，则使用Integer/int作为返回值类型，表示受影响的行数，当然，如果不关心这个返回值，也可以将返回值类型声明为void，但是，并不推荐；如果即将执行的是SELECT类型的操作，返回值类型使用期望的数据类型，同时，需要保证该类型可以封装所需要的查询结果，如果查询结果有多条记录，则应该使用L.]]></description><category></category></item><item><title><![CDATA[MyBatis框架知识点1]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107555692</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107555692</guid><author>Shuys</author><pubDate>Fri, 24 Jul 2020 10:48:27 +0800</pubDate><description><![CDATA[MyBatis框架简介
MyBatis框架可以简化数据库编程！
在使用MyBatis实现数据库编程时，只需要定义每个数据操作功能的抽象方法，并配置这个抽象方法对应的SQL语句即可！
当然，MyBatis框架还实现了数据库编程的其它细节，例如对查询结果的缓存等等。
通过MyBatis实现插入用户数据
3.1. 创建项目
创建新的项目，需要在pom.xml中添加多项依赖，首先，应该添加mybatis依赖：
&lt;!-- Mybatis框架 --&gt;
&lt;dependency&gt;
    &lt;g]]></description><category></category></item><item><title><![CDATA[基于SpringMVC的文件上传 2]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107465975</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107465975</guid><author>Shuys</author><pubDate>Mon, 20 Jul 2020 16:13:30 +0800</pubDate><description><![CDATA[基于SpringMVC的文件上传-关于MultipartFile的API
String getOriginalFilename()：获取原始文件名，即上传的文件在客户端时的文件名；
boolean isEmpty()：判断上传的文件是否为空，当没有选择文件就提交上传，或者，选择的文件是0字节的，则返回true，否则，返回false；
long getSize()：获取文件大小，以字节为单位；
String getContentType()：获取文件的MIME类型，可用于限制上传的文件类型；
void tra]]></description><category></category></item><item><title><![CDATA[基于SpringMVC的文件上传 1]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107415187</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107415187</guid><author>Shuys</author><pubDate>Fri, 17 Jul 2020 18:37:00 +0800</pubDate><description><![CDATA[创建Maven Project，Group Id为cn.tedu，Artifact Id为SpringMVC-Upload，Packaging选择war。
创建好项目后，需要添加相关依赖，此次必须使用的依赖有spring-webmvc和commons-fileupload，关于commons-fileupload依赖的代码是：
&lt;dependency&gt;
    &lt;groupId&gt;commons-fileupload&lt;/groupId&gt;
    &lt;artifactId]]></description><category></category></item><item><title><![CDATA[常见异常分类1]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107236160</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107236160</guid><author>Shuys</author><pubDate>Thu, 09 Jul 2020 19:42:27 +0800</pubDate><description><![CDATA[Throwable
Error：
OutOfMemoryError(00M)
Exception：
SQL Exception
IOException
FileNotFoundException
RuntimeException
NullPointerException
ClassCastException
ArithmeticException
IndexOutOfBoundsException
ArrayIndexOutOfBoundsException
StringIndex0utOfBoundsEx]]></description><category></category></item><item><title><![CDATA[CHAR与VARCHAR1]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107216687</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107216687</guid><author>Shuys</author><pubDate>Wed, 08 Jul 2020 22:28:02 +0800</pubDate><description><![CDATA[###附1 :关于CHAR与VARCHAR
CHAR定长的，而VARCHAR变长的;
假设设置为CHAR(10)、或VARCHAR(10)i, 假设存储hello字符串，使佣CHAR(10)时,会补_上5个空格得到设置值 10~ 的长度，如果使用VARCHAR(10)时，只存储hello，即5个字符。所以，在实际使用时，如果某列的数据都是固定长度，例如身份证号码固定是18位，则应该使用CHAR(18)，如果某列的数据的长度可能不同，例如哪户名，每个户给自己设置的用户名的长度可能不同，则应该使用VARCHAR]]></description><category></category></item><item><title><![CDATA[Servlet 添加员工功能]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107169188</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107169188</guid><author>Shuys</author><pubDate>Wed, 08 Jul 2020 16:19:53 +0800</pubDate><description><![CDATA[思路
数据在哪里，如何处理这些数据
插入 …
使用JDBC操作数据库
EmpDao封装插入操作，saveEmp
利用表单收集数据
利用Servlet接收数据，调用saveEmp完成操作
原理：
案例步骤
创建数据层访问方法
/**

将emp对象中的数据保存到数据库中
@param emp 代表新添加的数据
*/
public void saveEmp(Emp emp) {
String sql = "insert into emp "
+ "(empno, ename, job, mgr, "
+ "hi]]></description><category></category></item><item><title><![CDATA[JDBC 1]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107169698</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107169698</guid><author>Shuys</author><pubDate>Wed, 08 Jul 2020 16:19:27 +0800</pubDate><description><![CDATA[##jdbc.properties
server.port=80
spring.datasource.url=jdbc:mysql://localhost:3306/jtsys?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root


##DBUtil
public class DB]]></description><category></category></item><item><title><![CDATA[Ajax1]]></title><link>https://blog.youkuaiyun.com/Shuys/article/details/107170058</link><guid>https://blog.youkuaiyun.com/Shuys/article/details/107170058</guid><author>Shuys</author><pubDate>Wed, 08 Jul 2020 16:18:53 +0800</pubDate><description><![CDATA[##AJAX
AJAX = Asynchronous JavaScript and XML（异步的 JavaScript 和 XML）。
AJAX 不是新的编程语言，而是一种使用现有标准的新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下，可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件，但需要用户允许JavaScript在浏览器上执行。
语法格式及案例
&lt;script type="text/javascript" src="jquery-3.4.1.min.js"&]]></description><category></category></item></channel></rss>