4 答 案

尚未进行身份认证

我要认证

个人博客地址 www.aquestian.cn

等级
TA的排名 11w+

mybatis一级缓存二级缓存

一级缓存在mybatis中是默认开启的,一级缓存是单个session级别的,只在一次会话中有效,一个SqlSession对象中创建一个本地缓存,对于每一次查询,都会尝试根据查询的条件去本地缓存中查找是否在缓存中,如果在缓存中,就直接从缓存中取出,然后返回;否则,从数据库读取数据,将查询结果存入缓存并返回。一级缓存失效会话结束,缓存失效。 SqlSession调用了close(),会释放掉一级缓存PerpetualCache对象,一级缓存失效。 SqlSession调用了clearCache(

2020-10-26 17:55:43

springboot全局事务处理

写在前面前一篇写了全局事务异常处理,那么平时在开发过程中,在很多时候需要捕获异常然后对数据库进行事务回滚。事务回滚前提数据库表引擎必须是InnoDB,如果不是请参考我的另一篇文章修改,https://blog.csdn.net/qq_36357242/article/details/109066986。常规事务处理在业务层直接使用或者在方法实现上@Transactional(rollbackFor = Exception.class)每次写到service上都比较麻烦,但有一点

2020-10-14 10:43:18

mysql修改表引擎

将表从一个引擎修改为另一个引擎最简单的办法是使用 ALTER TABLE 语句。注意:该方法适用于任何存储引擎,但是需要执行很长时间,因为MySQL会按行将数据从原表复制到一张新的表中,在复制期间可能会消耗系统所有的 I/O 能力,并且原表上会加上读锁。如果转换表的存储引擎,将会失去和原引擎相关的所有特性。语法:ALTER TABLE 表名称 ENGINE = 引擎名称;例如alter table user ENGINE = MyISAM#支持事务alter table use

2020-10-14 10:16:09

springboot全局异常处理,干掉try catch。

写在前面SpringBoot项目进行全局异常的处理是非常有必要的,不仅处理异常方便,而且可以优化代码,干掉try catch。本篇文章基于spring boot。处理500等异常

2020-10-13 17:49:04

从代码的角度理解线程安全与不安全

写在前面在学习java的过程中,HashMap和Hashtable,StringBuilder和StringBuffer等等,他们俩俩之间,前者属于线程不安全,后者属于线程安全,在实际开发过程中,小项目基本不用考虑这些,但涉及到一些类似交易,转账等功能时,线程安全就是很有必要的!线程安全与不安全的理解最常说的例子,用户取钱:假设A和B同时去不同ATM上取同一张账户的1000块钱,如果是线程不安全,那么A和B同时取钱时,就可能出现俩人都取到1000块钱,那么这俩人就发财了,而如果线程安全呢,就只有

2020-09-21 15:21:55

MySql实现递归查询

写在前面众所周知,java中递归查询,需要和数据库进行多次交互,不论是向上查询还是向下查询,所以不如进行一次交互就完成查询。据我了解,Oracle实现递归查询非常的方便,但mysql不行,需要自定义函数来完成。创建表(Dept)DROP TABLE IF EXISTS `dept`;CREATE TABLE `dept` ( `id` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `na

2020-09-18 13:46:31

springboot校园社团管理系统源码分享

项目描述springboot校园社团管理系统源码分享,前端使用layui.js,后端使用springboot+mybaties。运行环境jdk8+tomcat8+mysql5.7+IntelliJ IDEA+maven项目技术spring boot+spring mvc+mybaties+jquery+layui项目截图运行截图localhost:8080 下边为部分截图加入我们如果有需要,欢迎可以加入我们的QQ群!(QQ搜索 1074281.

2020-09-09 14:12:34

Spring Security登录成功后用户保存在哪里。

当前用户获取信息我们在SecurityContextHolder内存储目前与应用程序交互的主要细节。Spring Security使用一个Authentication对象来表示这些信息。 你通常不需要创建一个自我认证的对象,但它是很常见的用户查询的Authentication对象。你可以使用以下代码块-从你的应用程序的任何部分-获得当前身份验证的用户的名称,例如:Object principal = SecurityContextHolder.getContext().getAuthenticat

2020-09-04 14:02:09

springboot整合elasticsearch

写在前面https://blog.csdn.net/qq_36357242/article/details/107997372先看这篇文章完成docker安装elaseticsearch之前看过一篇大佬文章,但是文章现在需要vip才可以查看,所以我重新总结一下。windows的小伙伴也可以安装docker,或者直接安装elaseticsearch也是可以的,yml配置需要改一下。springboot整合elaseticsearchpom引入<!--elasticsearc..

2020-08-14 11:57:34

docker安装elasticsearch,并解决一些常见问题。

拉取镜像docker pull elasticsearch:6.5.4启动镜像docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 elasticsearch:6.5.4--name表示镜像启动后的容器名称-d:后台运行容器,并返回容器ID;-e: 指定容器内的环境变量-p:指定端口映射,格式为:主机(宿主)端口:容器端口...

2020-08-14 10:02:23

Java反射——壮士留步,你新new的对象喜欢隔壁老王。

感谢这篇博客:https://blog.csdn.net/ju_362204801/article/details/90578678,让我对反射有了新的理解。写在前面什么是反射?反射就是就是把Java类中的各个部分(成员变量,方法,构造方法,等),映射成一个个的Java对象,可以进行任意调用。打个贴合文章标题的比方,new一个对象,这个对象就是一个美女,她告诉你她今天传了一件性感内衣,然后啥都没告诉你,这时候你灵光一现使用反射即可了解她穿这件内衣始末!下面会通过代码解释!了解美女对象穿内衣始末

2020-08-06 18:29:54

rabbitMQ五种消息发送模式——通配符模式

紧接上一篇:https://blog.csdn.net/qq_36357242/article/details/107688368本篇介绍通配符模式通配符模式通配符模式是可以根据路由键匹配规则选择性给多个消费者发送消息的模式,它包含一个生产者、两个消费者、两个队列和一个交换机。两个消费者同时绑定到不同的队列上去,两个队列通过路由键匹配规则绑定到交换机上去,生产者发送消息到交换机,交换机通过路由键匹配规则转发到不同队列,队列绑定的消费者接收并消费消息。*:只能匹配一个单词; ..

2020-07-30 14:13:53

rabbitMQ五种消息发送模式——路由模式

紧接上一篇:https://blog.csdn.net/qq_36357242/article/details/107686056本篇介绍路由模式路由模式路由模式是可以根据路由键选择性给多个消费者发送消息的模式,它包含一个生产者、两个消费者、两个队列和一个交换机。两个消费者同时绑定到不同的队列上去,两个队列通过路由键绑定到交换机上去,生产者发送消息到交换机,交换机通过路由键转发到不同队列,队列绑定的消费者接收并消费消息。声明交换机和队列//声明路由模式交换机 @Bean

2020-07-30 13:48:54

rabbitMQ五种消息发送模式——发布订阅模式

紧接上一篇:https://blog.csdn.net/qq_36357242/article/details/107682005本篇介绍发布订阅模式发布订阅模式发布/订阅模式是指同时向多个消费者发送消息的模式(类似广播的形式),它包含一个生产者、两个消费者、两个队列和一个交换机。两个消费者同时绑定到不同的队列上去,两个队列绑定到交换机上去,生产者通过发送消息到交换机,所有消费者接收并消费消息。声明交换机和队列 //申明俩个发布订阅模式的交换机 @Bean p

2020-07-30 11:25:36

rabbitMQ五种消息发送模式——工作模式

接着上一篇:https://blog.csdn.net/qq_36357242/article/details/107664806,这篇开始学习工作模式。工作模式工作模式是指向多个互相竞争的消费者发送消息的模式,它包含一个生产者、两个消费者和一个队列。两个消费者同时绑定到一个队列上去,当消费者获取消息处理耗时任务时,空闲的消费者从队列中获取并消费消息。声明一个队列(公平发放)声明一个新的队列,防止混淆。公平发放,能让效率高的消费的接受更多消息,举个例子,如果消费者一启动一个线程sleep

2020-07-30 10:15:44

rabbitMQ五种消息发送模式——普通模式

写在前面MQ的应用场景:https://www.aquestian.cn/article/27,请查看这篇文章!MQ环境搭建:https://www.aquestian.cn/article/28,请查看这篇文章!环境搭建1.搭建一个springboot项目。2.pom引入,mq所需jar包。<!--rabbitMQ--><dependency> <groupId>org.springframework.boot</groupId

2020-07-29 15:20:50

Java实现Zoho Mail 发送邮件,使用hutool工具类。

注册账户注册Zoho Mail 账户https://mail.zoho.com.cn设置poppop.xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.4....

2020-07-13 17:00:07

Spring boot 整合JWT + Security

什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。传统Cookie+Session与JWT对比① 在传统的用户登录认证中,因为ht

2020-07-02 15:48:19

request获取上下文路径、URL、URI、Servlet路径等的方法

String getContextPath():返回上下文路径,例如:/helloString getQueryString():返回请求URL中的参数,例如:name=zhangSanString getRequestURI():返回请求URI路径,例如:/hello/oneServletStringBuffer getRequestURL():返回请求URL路径,例如:http://localhost/hello/oneServlet,即返回除了参数以外的路径信息;String getS...

2020-06-30 13:51:53

docker安装mysq5.7数据库,并解决连接不上或者数据库一些sql语句不能使用的问题。

docker安装mysql查看mysql已有镜像docker search mysql //查看mysql已有镜像,然后它会给大家展示一大堆,这里我就不给大家截图了拉取mysql镜像这里安装5.7版本docker pull mysql:5.7 //安装mysql5.7启动容器记得关闭防火墙,或者开放3306端口。docker run -it --rm --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 .

2020-06-24 11:46:20

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取