自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (3)
  • 收藏
  • 关注

原创 泛型与函数作为参数的练习

传过来的泛型有两个,一个是T,是某个参数的泛型,而R是返回值的泛型。这个函数传的参数中,第一个是某个参数的类型,第二个是一个函数(T是参数,R是返回值)以及一个跟这个函数类型形参相同的参数。方法体中这个函数参数调用的apply方法可以传递参数。泛型在很久之前已经了解过了,但是总觉得一知半解,并且印象中好像没有练习过。而函数作为参数是我刚刚接触的,所以一起做个练习。函数参数可以用Lambda表达式。

2022-09-21 18:50:17 325

原创 Redis学习笔记——缓存穿透、雪崩和击穿

1、也叫热点key问题,就是一个高并发访问并且缓存重建业务比较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。1、描述:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。1、指在同一时间段大量缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。1)互斥锁:当一个请求未命中时,加锁然后更新缓存,别的请求等待,知道缓存更新完。当未命中时(逻辑过期),会有单独的一个线程更新缓存,把请求的数据设为空值存到缓存中。

2022-09-21 15:21:06 542

原创 Redis学习笔记——缓存更新策略

1、内存淘汰:不用自己维护,利用Redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时更新缓存。●缓存就是数据交换的缓冲区,是存储数据的临时地方,一般读写性能较高。将数据库的部分数据放在缓存中,当请求到达应用层直接查询缓存。3、主动更新:编写业务逻辑,在修改数据库的同时,更新缓存。2、另外,选择更新后缓存是更新还是删除也会产生不同的效果。●由缓存的调用者更新数据库的同时更新缓存(需要编码)更新缓存:每次更新数据库都更新缓存,无效写操作较多。删除缓存:更新数据库时让缓存失效,查询时再更新缓存。

2022-09-18 17:10:05 1204

原创 Redis学习笔记——操作Hash

2、然后实现它的三个方法(preHandle(controller处理之前),afterCompletion(DispatcherServlet进行视图的渲染之后),postHandle(Controller方法处理完之后))3、然后需要一个Mvc的配置类,需要实现WebMvcConfigurer接口,实现addInterceptors()方法,然后添加拦截器即可。使用order(),数字越小越先执行,默认情况下都是0,这时谁在前面谁先执行。由于拦截器并没有使用Bean注解,所以不能自动装配,

2022-09-15 16:57:19 1004

原创 Redis学习笔记——java操作Redis

1、Spring中的SpringData,是对各种数据的操作,其中SpringDataRedis就是对Redis中数据的操作,它整合了Lettuce和Jedis两种Redis客户端,引入依赖(Redis的和连接池的)就可以使用了。要解决这个问题,需要手动转换,我习惯用fastjson,存储时,把对象用fastjson转换成json字符串,取时在用fastjson转换成对象即可。@Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。

2022-09-13 10:35:55 387

原创 Redis学习笔记——数据类型

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类型。

2022-09-11 15:49:33 606

原创 Redis学习笔记——初识Redis

5、支持主从集群(相当于备份主节点的数据到从节点,从节点一般是只读)、分片集群(将数据拆分,将其分散存在不同的机器上)。2) sql数据是有关联的(关联表、外键),nosql是无关联的(可以设计成有关联的,但是需要自行维护)Redis是一种键值型数据库,储存的数据都已key-value的形式,是一种非关系型数据库。4) 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。1) sql是结构化的(二维表),nosql是非结构化的。

2022-09-06 19:33:55 560

原创 关于我第一次使用定时任务

显然我们需要过一段时间执行一次更新语句,并且由于不同的人的创建时间不同,更新的日期并不相同,因此我们需要每一天就找出需要更新的人,并更新他们的状态。我们需要开一个线程单独做这件事,并且需要用到定时任务。我自己的代码就是这几个拼凑拼凑出来的,不放出来了。过了特定的时间(日为单位),客户的状态会改变。......

2022-08-16 20:18:47 116

原创 MyBatis批量更新

当然这用循环一个个更新貌似也是可行的,但是那样效率不高,这时就会想到能不能批量更新呢。表示在trim包裹的SQL语句前面添加的指定内容。表示去掉(覆盖)trim包裹的SQL的指定首部内容。表示去掉(覆盖)trim包裹的SQL的指定尾部内容。结束批量添加后,又有了一个需求......表示在trim包裹的SQL末尾添加指定内容。修改一栋楼中特定状态的房子的价格。标签trim是用来拼凑SQL语句的。...

2022-08-15 12:43:52 441

原创 关于批量添加遇到的坑

但是又遇到一个问题,添加的楼层是和楼有联系的,即每一条都有一个楼的id,但是楼也是刚添加上去的,并且id是自增长,所以前端传过来数据中并没有楼的id,如果先插入的话没有id也无法正确的查询出来刚才插入的楼是哪个。批量添加已经很久没用过了,刚接到的时候一脸蒙,还好有度娘,经过一番搜索,批量添加的写出来了,上代码。今天遇到问题的需求是:当添加一栋楼时,把它包括的单元和楼层全部插入数据库中。......

2022-08-10 17:12:26 703

原创 关于用一个表的字段对另一个表模糊查询的问题

select id from es_customers where name like concat('%', #{customer}, '%')就会查出所有符合条件的客户(只查了id),当合同表中的记录的customer_id字段在(in)这个查询结果中,就会被查出来。今天做项目的时候遇到了一个需求,就是按照客户的名字模糊查询合同表。然后看了一下合同表,里面并没有客户名这个字段,有的是一个客户id,所有关于客户的东西都是通过它连表查询出来的,作为一个新手,这显然对我有一定的困难。...

2022-08-08 19:20:44 1166

原创 关于elementUI下拉选择的用法

今天在完成一个功能时,遇到了一些我认为值得记录一下的东西一,任务修改和增加操作,但是需要用到下拉列表(以修改为例)二,困难1,动态显示下拉列表2,修改时回显原数据3,将修改的数据提交到后端三,解决1,在下的标签中用vue进行遍历,label属性是我们看到的内容2,在中绑定(用v-model),注意绑定的名字要和后端查询的保持一致3,做完上面的步骤提交到后端基本上就已经没什么问题了,并且提交到后端的数据是的value属性的......

2022-07-04 18:18:41 4715

原创 关于若依框架页面跳转但内容不变的问题

一,问题:我点击一个按钮跳转到一个页面,数据显示的很正常,但是当我点击另一个按钮(url基本相同,只是传参不同)结果成功跳转到那个页面但是数据还是上一次访问时的数据二,解决试了不少也找了不少,但是还是这个靠谱:解决vue页面跳转不刷新问题_hicfly的博客-优快云博客_vue 页面不刷新三,拓展watch:监测 Vue 实例变化的一个表达式或方法。作用:可以监控一个值的变换,并调用因为变化需要执行的方法。$route是用来获取当前路由的一些信息的,比如传的参数至于to与from两个参数一个指的是

2022-07-04 11:09:36 1332 1

原创 SpringMVC(5)——拦截器

一,概述是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器的执行作用:1、在指定的方法调用前后执行预先设定的代码2、阻止原始方法的执行二,制作拦截器的过程1、声明拦截器的bean,并实现HanlerInterceptor接口 1)创建一个拦截器的类,现HanlerInterceptor接口 2)覆盖perHandl、postHandle、afterCompletion这三个方法ps(拦截成功后执行perHandl可以对拦截进行判断,返回true可以继续执行,

2022-06-28 20:21:36 468

原创 SpringMVC(4)——数据封装与异常处理

一,表现层数据封装为了便于前端对数据的操作,我们应该将响应到前端的数据统一格式。1、创建一个统一数据返回结果类(就是返回的数据全部封装成这个类型)2、基本的参数有code、data、msg这三个 1)code可以判断操作是否成功,一般是个Integer类型,可以将code的所有状态码放到一个类中方便后续使用 2)data是返回的数据,有可能是个集合或者是个pojo类型等,所以类型设为Object 3)msg是返回的信息,比如操作成功或者操作失败,类型是String

2022-06-27 20:07:10 519

原创 关于XML配置文件中的association标签的使用问题

XML配置文件中的association用于表与表的连接适用于一对一和多对一(我遇到的是一对一,多对多还未涉及)(为了便于观察我把resultMap中的配置删的只剩下这些)1,上面的association标签的property中填的是查询结果对应的实体类中本来不应该有的东西因为如果平时的话是按照表的字段来写实体类,但是这个东西不属于查询结果对应的表中2,它来自与查询结果对应的表连接的表,但是查询结果对应的实体类中需要有这个连接的表对应的实体类及其get、set方法3,column中填的是两个表之间连

2022-06-25 10:32:29 2529 1

原创 SpringMVC(3)——REST风格

一,简介表现形式状态转换(其实就是访问网络资源的格式)优点:1、隐藏资源的访问行为,无法通过地址的值对资源是进行何种操作2、书写简化二,常用行为可以看到有些操作发送的url是一样的,所以是通过发送请求的方式来区别不同的操作三,基本使用1、在方法的@RequestMapping直接中配置请求以何种方式发送,如@RequestMapping(value="/users",method=RequestMathod.post)2、使用这种风格会与之前传参发生冲突,为了能正确传参,需要在形参前面加上@PathVar

2022-06-24 19:58:43 221

原创 SpringMVC(2)——请求与响应

一,请求1、请求映射路径使用@RequestMapping,可以作为方法注解也可以作为类注解当是类注解的时候,就表示统一设置当前控制器(类)方法请求访问路径前缀,可以两种办法结合设置映射路径2、请求发送参数 1)请求发送普通参数 get请求传参:url地址传参,地址参数名与形参变量名相同,定义形参即可接收参数 post请求参数:form表单post请求传参,表单参数名与形参变量名相同,定义形参即可接收 参数 2)请求参数发送p

2022-06-23 19:53:44 162

原创 学习SpringMVC(1)——基本流程

一,简介SpringMVC是一种基于Java实现MVC模型的轻量级Web框架优点:1,使用简单,开发便捷2,灵活性更强二,基本使用流程1,先导入SpringMVC坐标与Servlet坐标2,定义bean:创建SpringMVC控制器类(作用相当于Servlet功能,用@Controller注解)1)设置当前目录的访问路径:里面的方法用@RequestMapping("访问路径")2)@ResponseBody注解,是将返回的东西这个整体作为响应的内容3,加载bean:创建一个SpringMVC的配置类

2022-06-22 19:29:17 243

原创 使用ruoyi框架搭建环境时遇到的问题

好像很久没有学习了(*/ω\*),因为刚放假所以怠惰了。但是好在我又回来了。今天我解除了ruoyi的框架,弄好它的运行环境耗费了我很大的精力。在这个过程中主要遇到了两个麻烦一、Redis的问题Redis的安装还是非常简单地就直接下载解压到C盘在cmd窗口启动就行了尽管如此,我还是遇到了一些问题,是在环境变量那部分以前配环境变量都会配到bin目录那里,但是Redis没有bin目录,所以到redis(j解压后自己改成的redis)目录就行我看的是菜鸟教程的安装文档里面的启动命令为:redis-serve

2022-06-20 19:07:26 817 1

原创 Spring(4)——Spring事务

一,简介事务作用∶在数据层保障一系列的数据库操作同成功同失败Spring事务作用︰在数据层或业务层保障一系列的数据库操作同成功同失败二,流程1、在业务层接口里使用@Transactional注解开启事务2、在配置类中指定一个事务管理器(PlatformTransaction、DataSourceTransaction等)3、开启注解式事务驱动,在配置类(配置JDBC的那个)中加入@EnableTransactionManagement注解使事务管理注解生效三,Spring事务角色

2022-05-31 16:44:22 141

原创 Spring(3)——AOP

一,概述1,、面向切面编程,一种编程范式,知道开发者如何组织程序结构在不惊动原始设计的基础上为其进行功能增强2、连接点:程序执行过程中的任意位置,粒度为执行方法、抛出异常、设置变量等SpringAOP中,理解为方法的执行3、切入点:匹配连接点的式子。在SpringAOP中,一个切入点可以只描述一个具体方法,也可以匹配多个方法4、通知:在切入点出执行的操作,也就是共性功能在SpringAOP中,功能最终以方法的形式呈现5、通知类:定义通知的类6、切面:描述通知与切入点的对应关系

2022-05-27 15:20:46 189

原创 Spring(2)——注解开发

一,注解开发1、定义bean@Component("名称")(名称相当于之前配置bean的id)在要配置的bean的类那里用这个注解核心配置文件中通过扫描加载bean<context:component-scan base-package="文件目录"/>在service可以使用@service,在dao层用@Repository,在Control层用@Controller,他们跟@Component作用一样,只是为了方便阅读。二,纯注解开发1、配置类1)Sprin

2022-05-23 16:39:04 157

原创 Spring(1)——IoC与DI

大致上了解了一遍JavaWeb后,我又忍不住放纵了几天,太罪恶了(=´ω`=),今天开始继续学习。这一次开始学习SSM框架。一,IoC(控制反转)1、概述1)对象的创建控制权由程序转移到外部,这种思想称为控制反转(这样可以较小耦合)2)Spring提供了一个容器,用来充当“外部”,称为IoC容器3)IoC负责对象的创建、初始化等一系列工作,被创建或者被管理的对象在IoC容器中统称为Bean4)基本格式<bean id="名字" class="对象的类的路径"></

2022-05-23 09:55:59 147

原创 案例:商品管理

JavaWeb的学习已经告一段落了,之前还有很多不熟悉的地方(关键是有的东西没有自己动手做一做),所以我做了这个案例来熟悉熟悉之前的一,描述这一次不仅有登录注册,还有商品的增删改查,查询这里我只做了一个输入框的模糊查询,至于其他的例如分页查询、联合查询什么的也就SQL语句不一样,但是我记得之前我上传过一个是有这些的。另外,我还用filter做了简单的拦截,如图虽然在导航栏输入的是list.html,但是它还是需要登录才能进去。登录进去后:为了省事,数据填的都很随意,而且样式我也没有美

2022-05-20 09:35:05 226

原创 了解Vue

一,概述Vue是一套前端框架,免除了JavaScript中的DOM操作,简化书写基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上二,使用1、引入js文件:<script src="js/vue.js"></script>2、基本格式new Vue( { el:"选择器", data(){ 数据...... } });...

2022-05-17 10:53:33 71

原创 学习——AJAX

Asynchronous JavaScript And XML,异步的JavaScript和XML简称Ajax一,作用1.与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据使用了AJAX和服务器进行通信,就可以使用HTML+AJAX来替换JSP页面了2.异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用校验,等等....同样的,ajax的书写也可以参看在线教程:w3school 在线教程二,Axios

2022-05-16 20:15:08 250

原创 了解Filter

一,概述表示过滤器,是JavaWeb三大组件之一(Servlet、Filter、Listener)过滤器可以把资源请求拦截下来,从而实现一些特殊的功能过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等二,使用1、与Servlet相似,Filter也需要继承接口(Filter)并重写其中所有方法2、配置Filter拉涅资源的路径:在类上定义@WebFilter注解3、放行:拦截后处理完了还需要放行chain.doFilter(request,response)

2022-05-16 10:04:11 728

原创 会话跟踪的学习

一,概述1、会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应2、会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据3、原因:HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享会话跟踪的两个办法:1)客户端会话跟踪技术:Cookie2)服务端会话跟踪技术: Session二

2022-05-15 20:36:28 113

原创 做个案例:登录与注册

学JavaWeb也有一段时间了,一直没怎么做过练习,今天还是练习一下巩固巩固好了。因为是个小练习,做的也是比较随意,怎么简单怎么来了,就是把之前学的MyBatis和Servlet熟悉一下。一,描述登录页面,一个简单的表单注册页面,对,没错,为了省事我连表单校验也没做。上述登录和注册成功后跳转的页面只有登录成功/注册成功。二,部分代码由于相当简单,MyBatis的配置文件啥的就没什么好看的了,所以:import org.apache.ibatis.io.Resource.

2022-05-15 14:42:31 111

原创 了解Servlet

Servlet对象由web服务器创建,Servlet方法由web服务器调用一,Servlet对象的生命周期Servlet运行在servlet容器(web服务器)中,其生命周期由容器来管理,分为4个阶段:1、加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建servlet对象2、初始化:在Servlet实例化之后,容器将调用Servlet的linit()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次3、请求处理:每次请求Servlet时,

2022-05-13 21:39:12 328

原创 HTTP协议

一,概述超文本传输协议,规定了浏览器和服务器之间数据传输的规则1、基于TCP协议,面向连接,安全2、基于请求-响应模型的:一次请求对应一个响应3、HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。4、缺点﹔多次请求间不能共享数据。Java中使用会话技术(Cookie、Session)来解决这个问题5、优点:速度快二,请求数据的格式这是我打开的百度截的图1、请求行:请求数据的第一行。GET表示请求方式/...表示请求资源路径HT

2022-05-12 20:14:14 435

原创 了解JavaScript(下)

一,函数被设计为执行特定任务的代码块格式:unction 函数名(参数1,参数2...){}或者var 函数名=functio(参数列表){}形式参数不需要类型(弱类型)二、对象1、基础对象1)Array用于定义数组var 变量名=new Array(元素列表);var 变量名=[];访问与java一样js中的数组是变长、变类型的(数组元素数据类型可以不一样)属性:length#方法#push()添加splice(start,number)删除(从start开始删除

2022-05-11 15:42:17 164

原创 了解JavaScript(上)

一、JavaScript概述是一门跨平台、面向对象的脚本语言,来控制网页行为,它能使网页可交互引入方式1、内部脚本:将js代码定义在html页面中可以放在任意位置,一般放在body的末尾2、外部脚本:将js代码定义在外部js文件中,然后引入到html页面中<script src="路径"></script>二,基础语法1、格式区分大小写:与java一样,变量名、函数名以及其他一切东西都是区分大小写的每行的分号可有可无,但是建议带上注释与java一样

2022-05-10 20:52:58 210

原创 css的学习

我自我感觉并不是个有美感的人,并且css里面要记得东西太多了,还是那句话:学习手册啥都有:CSS概述1、是一门语言,用于控制网页的表现2、导入方式1)内联样式在标签内部使用style属性,属性值是css属性键值对2)内部样式定义<style>标签,在标签内部定义css样式3)外部样式定义<link>标签,引入外部css文件,如<link rel="stylesheet" href="demo.css">3、选择器选择器就是选取需设置样

2022-05-10 19:40:49 102

原创 html学习

html我已经了解过两遍了,但是还是有很多东西记不住。今天,我再次接触接触它。参考手册:https://www.w3school.com.cn/一,html概述

2022-05-10 16:09:07 147

原创 了解MyBatis

官网啥都有:mybatis – MyBatis 3 | 简介一,MyBatis是一款优秀的持久层框架,用于简化JDBC开发1、持久层JavaEE三层架构:表现层、业务层、持久层。持久层负责将数据保存到数据库的那一层代码2、框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型在框架的基础上构件软件编写更加高效、规范、通用、可拓展MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作二,Mapper代理开发1.定义与SQL映射文件同名的Ma

2022-05-10 10:53:11 141

原创 了解JDBC

一,JDBC就是Java语言操作关系型数据库的一套API官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口各个数据库厂商去实现这套接口,提供数据库驱动jar包我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类二,相关API1、DriverManager用来注册驱动和获取数据库连接获取数据库连接:DriverManager.getConnection(url,username,password);返回一个Connection对象其中url="jd

2022-05-09 10:12:31 186

原创 约束、多表查询与事务

一,约束约束 描述 关键字 非空约束 保证列中所有数据不能有null值 NOT NULL 唯一约束 保证列中所有数据各不相同 UNIQUE 主健约束 主键是一行数据的唯一标识。要求非空且唯一 PRIMARY KEY 检查约束 保证列中的值满足某一条件 CHECK 默认约束 保存数据时,未指定值则采用默认值 DEFAULT 外键约束 外键用来让两个表的数据之间建立链接。侯证数据的一致性和完整性 FR

2022-05-07 15:43:04 127

原创 DML与DQL

一,DML就是对表中的增删改的操作1、添加添加一条:insert into 表名(列名1,列名2...) values(值1,值2...)批量添加:insert into 表名(列名1,列名2...) values(值1,值2...),(值1,值2...)...2、修改update 表名 set 列名1=值1,列名2=值2...[where 条件]注意:没有where时,会将所有数据全部修改3、删除delete from 表名 [where 条件];注意:没有where时

2022-05-06 16:09:14 257

JavaWeb+vue,ajax,html,Servlet,filter+商品管理+学习巩固

javaweb的学习暂时告一段落了,鉴于我已经很久没有做过什么练习了,而且感觉之前很多东西都没有很熟悉,所以我做了这么一个练习,与之前的那个相比,这一个不仅有登录注册,而且增加了商品的增删改查,并且使用filter进行了简单地拦截。

2022-05-20

JavaWeb-MyBatis和Servlet-登录和注册-练习所用

这是我学了一段时间的JavaWeb后用于熟悉熟悉前面学习的内容,用到了MyBatis和Servlet因为只是为了熟悉熟悉,所以怎么简单怎么写的,甚至连表单校验都没有做,怕哪天复习但是东西遗失了,发一个出来保存

2022-05-15

springboot-商品管理

我做的一个简单地商品管理,可以登陆注册啥的,实现了分页,数据校验,这个是个前台,所以没有删除啊啥的功能

2022-04-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除