<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jtjeeeee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jtjeeeee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jtjeeeee]]></copyright><item><title><![CDATA[泛型与函数作为参数的练习]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126978376</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126978376</guid><author>jtjeeeee</author><pubDate>Wed, 21 Sep 2022 18:50:17 +0800</pubDate><description><![CDATA[传过来的泛型有两个，一个是T，是某个参数的泛型，而R是返回值的泛型。这个函数传的参数中，第一个是某个参数的类型，第二个是一个函数（T是参数，R是返回值）以及一个跟这个函数类型形参相同的参数。方法体中这个函数参数调用的apply方法可以传递参数。泛型在很久之前已经了解过了，但是总觉得一知半解，并且印象中好像没有练习过。而函数作为参数是我刚刚接触的，所以一起做个练习。函数参数可以用Lambda表达式。]]></description><category></category></item><item><title><![CDATA[Redis学习笔记——缓存穿透、雪崩和击穿]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126973432</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126973432</guid><author>jtjeeeee</author><pubDate>Wed, 21 Sep 2022 15:21:06 +0800</pubDate><description><![CDATA[1、也叫热点key问题，就是一个高并发访问并且缓存重建业务比较复杂的key突然失效了，无数的请求访问会在瞬间给数据库带来巨大的冲击。1、描述：缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在，这样缓存永远不会生效，这些请求都会打到数据库。1、指在同一时间段大量缓存key同时失效或者Redis服务宕机，导致大量请求到达数据库，带来巨大压力。1）互斥锁：当一个请求未命中时，加锁然后更新缓存，别的请求等待，知道缓存更新完。当未命中时（逻辑过期），会有单独的一个线程更新缓存，把请求的数据设为空值存到缓存中。]]></description><category></category></item><item><title><![CDATA[Redis学习笔记——缓存更新策略]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126919882</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126919882</guid><author>jtjeeeee</author><pubDate>Sun, 18 Sep 2022 17:10:05 +0800</pubDate><description><![CDATA[1、内存淘汰：不用自己维护，利用Redis的内存淘汰机制，当内存不足时自动淘汰部分数据。下次查询时更新缓存。●缓存就是数据交换的缓冲区，是存储数据的临时地方，一般读写性能较高。将数据库的部分数据放在缓存中，当请求到达应用层直接查询缓存。3、主动更新：编写业务逻辑，在修改数据库的同时，更新缓存。2、另外，选择更新后缓存是更新还是删除也会产生不同的效果。●由缓存的调用者更新数据库的同时更新缓存（需要编码）更新缓存:每次更新数据库都更新缓存，无效写操作较多。删除缓存:更新数据库时让缓存失效，查询时再更新缓存。]]></description><category></category></item><item><title><![CDATA[Redis学习笔记——操作Hash]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126874936</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126874936</guid><author>jtjeeeee</author><pubDate>Thu, 15 Sep 2022 16:57:19 +0800</pubDate><description><![CDATA[2、然后实现它的三个方法（preHandle（controller处理之前），afterCompletion（DispatcherServlet进行视图的渲染之后），postHandle（Controller方法处理完之后））3、然后需要一个Mvc的配置类，需要实现WebMvcConfigurer接口，实现addInterceptors()方法，然后添加拦截器即可。使用order()，数字越小越先执行，默认情况下都是0，这时谁在前面谁先执行。由于拦截器并没有使用Bean注解，所以不能自动装配，]]></description><category></category></item><item><title><![CDATA[Redis学习笔记——java操作Redis]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126828156</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126828156</guid><author>jtjeeeee</author><pubDate>Tue, 13 Sep 2022 10:35:55 +0800</pubDate><description><![CDATA[1、Spring中的SpringData，是对各种数据的操作，其中SpringDataRedis就是对Redis中数据的操作，它整合了Lettuce和Jedis两种Redis客户端，引入依赖（Redis的和连接池的）就可以使用了。要解决这个问题，需要手动转换，我习惯用fastjson，存储时，把对象用fastjson转换成json字符串，取时在用fastjson转换成对象即可。@Bean：Spring的@Bean注解用于告诉方法，产生一个Bean对象，然后这个Bean对象交给Spring管理。]]></description><category></category></item><item><title><![CDATA[Redis学习笔记——数据类型]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126805933</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126805933</guid><author>jtjeeeee</author><pubDate>Sun, 11 Sep 2022 15:49:33 +0800</pubDate><description><![CDATA[Redis的Set类型与java中的HashSet类似，可以看做是一个value为null的HashMap。Redis是一个key-value的数据库，key一般是String类型，但是value的类型多种多样。（Redis的key允许有多个单词形成层级结构，多个单词之间用“:”隔开，不同层级的id可以相同）Redis中的List类型类似于java中的LinkedList，可以看做一个双向链表结构。1、基本类型：String、Hash、List、Set、SortedSet。1、String类型。]]></description><category></category></item><item><title><![CDATA[Redis学习笔记——初识Redis]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126732029</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126732029</guid><author>jtjeeeee</author><pubDate>Tue, 06 Sep 2022 19:33:55 +0800</pubDate><description><![CDATA[5、支持主从集群（相当于备份主节点的数据到从节点，从节点一般是只读）、分片集群（将数据拆分，将其分散存在不同的机器上）。2)        sql数据是有关联的（关联表、外键），nosql是无关联的（可以设计成有关联的，但是需要自行维护）Redis是一种键值型数据库，储存的数据都已key-value的形式，是一种非关系型数据库。4)        持久性：事务处理结束后，对数据的修改就是永久的，即便系统故障也不会丢失。1)        sql是结构化的（二维表），nosql是非结构化的。]]></description><category></category></item><item><title><![CDATA[关于我第一次使用定时任务]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126373500</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126373500</guid><author>jtjeeeee</author><pubDate>Tue, 16 Aug 2022 20:18:47 +0800</pubDate><description><![CDATA[显然我们需要过一段时间执行一次更新语句，并且由于不同的人的创建时间不同，更新的日期并不相同，因此我们需要每一天就找出需要更新的人，并更新他们的状态。我们需要开一个线程单独做这件事，并且需要用到定时任务。我自己的代码就是这几个拼凑拼凑出来的，不放出来了。过了特定的时间（日为单位），客户的状态会改变。......]]></description><category></category></item><item><title><![CDATA[MyBatis批量更新]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126344592</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126344592</guid><author>jtjeeeee</author><pubDate>Mon, 15 Aug 2022 12:43:52 +0800</pubDate><description><![CDATA[当然这用循环一个个更新貌似也是可行的，但是那样效率不高，这时就会想到能不能批量更新呢。表示在trim包裹的SQL语句前面添加的指定内容。表示去掉（覆盖）trim包裹的SQL的指定首部内容。表示去掉（覆盖）trim包裹的SQL的指定尾部内容。结束批量添加后，又有了一个需求......表示在trim包裹的SQL末尾添加指定内容。修改一栋楼中特定状态的房子的价格。标签trim是用来拼凑SQL语句的。...]]></description><category></category></item><item><title><![CDATA[关于批量添加遇到的坑]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126269905</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126269905</guid><author>jtjeeeee</author><pubDate>Wed, 10 Aug 2022 17:12:26 +0800</pubDate><description><![CDATA[但是又遇到一个问题，添加的楼层是和楼有联系的，即每一条都有一个楼的id，但是楼也是刚添加上去的，并且id是自增长，所以前端传过来数据中并没有楼的id，如果先插入的话没有id也无法正确的查询出来刚才插入的楼是哪个。批量添加已经很久没用过了，刚接到的时候一脸蒙，还好有度娘，经过一番搜索，批量添加的写出来了，上代码。今天遇到问题的需求是：当添加一栋楼时，把它包括的单元和楼层全部插入数据库中。......]]></description><category></category></item><item><title><![CDATA[关于用一个表的字段对另一个表模糊查询的问题]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/126233900</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/126233900</guid><author>jtjeeeee</author><pubDate>Mon, 08 Aug 2022 19:20:44 +0800</pubDate><description><![CDATA[select id from es_customers where name like concat('%', #{customer}, '%')就会查出所有符合条件的客户（只查了id），当合同表中的记录的customer_id字段在（in）这个查询结果中，就会被查出来。今天做项目的时候遇到了一个需求，就是按照客户的名字模糊查询合同表。然后看了一下合同表，里面并没有客户名这个字段，有的是一个客户id，所有关于客户的东西都是通过它连表查询出来的，作为一个新手，这显然对我有一定的困难。...]]></description><category></category></item><item><title><![CDATA[关于elementUI下拉选择的用法]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125605909</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125605909</guid><author>jtjeeeee</author><pubDate>Mon, 04 Jul 2022 18:18:41 +0800</pubDate><description><![CDATA[今天在完成一个功能时，遇到了一些我认为值得记录一下的东西一，任务修改和增加操作，但是需要用到下拉列表（以修改为例）二，困难1，动态显示下拉列表2，修改时回显原数据3，将修改的数据提交到后端三，解决1，在下的标签中用vue进行遍历，label属性是我们看到的内容2，在中绑定（用v-model），注意绑定的名字要和后端查询的保持一致3，做完上面的步骤提交到后端基本上就已经没什么问题了，并且提交到后端的数据是的value属性的......]]></description><category></category></item><item><title><![CDATA[关于若依框架页面跳转但内容不变的问题]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125596072</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125596072</guid><author>jtjeeeee</author><pubDate>Mon, 04 Jul 2022 11:09:36 +0800</pubDate><description><![CDATA[一，问题：
我点击一个按钮跳转到一个页面，数据显示的很正常，
但是当我点击另一个按钮（url基本相同，只是传参不同）
结果成功跳转到那个页面但是数据还是上一次访问时的数据二，解决试了不少也找了不少，但是还是这个靠谱：解决vue页面跳转不刷新问题_hicfly的博客-优快云博客_vue 页面不刷新三，拓展watch：监测 Vue 实例变化的一个表达式或方法。作用：可以监控一个值的变换，并调用因为变化需要执行的方法。$route是用来获取当前路由的一些信息的，比如传的参数
至于to与from两个参数一个指的是]]></description><category></category></item><item><title><![CDATA[SpringMVC（5）——拦截器]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125509057</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125509057</guid><author>jtjeeeee</author><pubDate>Tue, 28 Jun 2022 20:21:36 +0800</pubDate><description><![CDATA[一，概述是一种动态拦截方法调用的机制，在SpringMVC中动态拦截控制器的执行作用：
1、在指定的方法调用前后执行预先设定的代码
2、阻止原始方法的执行二，制作拦截器的过程1、声明拦截器的bean，并实现HanlerInterceptor接口        1）创建一个拦截器的类，现HanlerInterceptor接口
        2）覆盖perHandl、postHandle、afterCompletion这三个方法ps（拦截成功后执行perHandl可以对拦截进行判断，返回true可以继续执行，]]></description><category></category></item><item><title><![CDATA[SpringMVC（4）——数据封装与异常处理]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125490894</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125490894</guid><author>jtjeeeee</author><pubDate>Mon, 27 Jun 2022 20:07:10 +0800</pubDate><description><![CDATA[一，表现层数据封装为了便于前端对数据的操作，我们应该将响应到前端的数据统一格式。1、创建一个统一数据返回结果类（就是返回的数据全部封装成这个类型）2、基本的参数有code、data、msg这三个
        1）code可以判断操作是否成功，一般是个Integer类型，可以将code的所有状态码放到一个类中方便后续使用        2）data是返回的数据，有可能是个集合或者是个pojo类型等，所以类型设为Object        3）msg是返回的信息，比如操作成功或者操作失败，类型是String]]></description><category></category></item><item><title><![CDATA[关于XML配置文件中的association标签的使用问题]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125456216</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125456216</guid><author>jtjeeeee</author><pubDate>Sat, 25 Jun 2022 10:32:29 +0800</pubDate><description><![CDATA[XML配置文件中的association用于表与表的连接适用于一对一和多对一（我遇到的是一对一，多对多还未涉及）


（为了便于观察我把resultMap中的配置删的只剩下这些）1，上面的association标签的property中填的是查询结果对应的实体类中本来不应该有的东西
因为如果平时的话是按照表的字段来写实体类，但是这个东西不属于查询结果对应的表中2，它来自与查询结果对应的表连接的表，但是查询结果对应的实体类中需要有这个连接的表对应的实体类及其get、set方法3，column中填的是两个表之间连]]></description><category></category></item><item><title><![CDATA[SpringMVC（3）——REST风格]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125451377</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125451377</guid><author>jtjeeeee</author><pubDate>Fri, 24 Jun 2022 19:58:43 +0800</pubDate><description><![CDATA[一，简介表现形式状态转换（其实就是访问网络资源的格式）优点：1、隐藏资源的访问行为，无法通过地址的值对资源是进行何种操作2、书写简化二，常用行为可以看到有些操作发送的url是一样的，所以是通过发送请求的方式来区别不同的操作三，基本使用1、在方法的@RequestMapping直接中配置请求以何种方式发送，如
@RequestMapping(value="/users",method=RequestMathod.post)2、使用这种风格会与之前传参发生冲突，为了能正确传参，需要在形参前面加上@PathVar]]></description><category></category></item><item><title><![CDATA[SpringMVC（2）——请求与响应]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125433703</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125433703</guid><author>jtjeeeee</author><pubDate>Thu, 23 Jun 2022 19:53:44 +0800</pubDate><description><![CDATA[一，请求1、请求映射路径使用@RequestMapping，可以作为方法注解也可以作为类注解
当是类注解的时候，就表示统一设置当前控制器（类）方法请求访问路径前缀，可以两种办法结合设置映射路径2、请求发送参数        1）请求发送普通参数        get请求传参：url地址传参，地址参数名与形参变量名相同，定义形参即可接收参数
        post请求参数：form表单post请求传参，表单参数名与形参变量名相同，定义形参即可接收            参数        2）请求参数发送p]]></description><category></category></item><item><title><![CDATA[学习SpringMVC（1）——基本流程]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125415315</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125415315</guid><author>jtjeeeee</author><pubDate>Wed, 22 Jun 2022 19:29:17 +0800</pubDate><description><![CDATA[一，简介SpringMVC是一种基于Java实现MVC模型的轻量级Web框架优点：
1，使用简单，开发便捷
2，灵活性更强二，基本使用流程1，先导入SpringMVC坐标与Servlet坐标2，定义bean：创建SpringMVC控制器类（作用相当于Servlet功能，用@Controller注解）1）设置当前目录的访问路径：里面的方法用@RequestMapping("访问路径")
2）@ResponseBody注解，是将返回的东西这个整体作为响应的内容3，加载bean：创建一个SpringMVC的配置类]]></description><category></category></item><item><title><![CDATA[使用ruoyi框架搭建环境时遇到的问题]]></title><link>https://blog.youkuaiyun.com/jtjeeeee/article/details/125378978</link><guid>https://blog.youkuaiyun.com/jtjeeeee/article/details/125378978</guid><author>jtjeeeee</author><pubDate>Mon, 20 Jun 2022 19:07:26 +0800</pubDate><description><![CDATA[好像很久没有学习了(＊／ω＼＊)，因为刚放假所以怠惰了。但是好在我又回来了。今天我解除了ruoyi的框架，弄好它的运行环境耗费了我很大的精力。在这个过程中主要遇到了两个麻烦一、Redis的问题Redis的安装还是非常简单地
就直接下载解压到C盘在cmd窗口启动就行了
尽管如此，我还是遇到了一些问题，是在环境变量那部分
以前配环境变量都会配到bin目录那里，但是Redis没有bin目录，所以到redis（j解压后自己改成的redis）目录就行我看的是菜鸟教程的安装文档
里面的启动命令为：redis-serve]]></description><category></category></item></channel></rss>