MyBatis缓存
mybatis中提供查询缓存,用于减轻数据库的压力,提高数据库的性能。
MyBtais缓存介绍:Mybatis的二级缓存其实默认是开启的,但我们需要指定每个mapper的缓存策略二级缓存才会生效,如何不配置缓存策略二级缓存则不生效。
开启二级缓存与配置缓存策略:开启二级缓存:
默认是开启的
首先在全局配置文件 mybatis-configuration.xml 文件中加入如下代码:
1234<!--开启二级缓存 --><settings> <setting name="cacheEnabled" value="true"/></settings>
配置缓存策略:
在Mybatis的映射Mapper XML文件中设置
12<!-- 开启二级缓存 --><cache></cache>
我们可以看到 mapper.xml 文件中就这么一个空标签,其实这里可以配置,PerpetualCache这个类是mybatis默认实现缓存功能的类。我们不写type就使用my ...
Java链式调用
前言:通俗易懂的Java链式调用讲解
之前接入支付宝支付接口的时候,看到支付宝提供的demo中有这么一段代码:
12345678910111213141516// 创建扫码支付请求builder,设置请求参数 AlipayTradePrecreateRequestBuilder builder = new AlipayTradePrecreateRequestBuilder() .setSubject(subject)//订单主题 .setTotalAmount(totalAmount)//订单总金额,单位为元 .setOutTradeNo(outTradeNo)//订单号 .setUndiscountableAmount(undiscountableAmount)//默认0.0 .setSellerId(sellerId)//卖家支付宝账号ID .setBody(body)//订单描述 .setOpe ...
MySQL锁的理解
前言:锁是MySQL在服务器层和存储引擎层的的并发控制。加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否已解除、释放锁等,都会增加系统的开销。
锁的类型InnoDB实现了如下两种标准的行级锁:
共享锁(S Lock):允许事务对一条行数据进行读取
排他锁(X Lock):允许事务对一条行数据进行删除或更新
如果一个事务T1已经获得了行r的共享锁, 那么另外的事务T2可以立即获得行r的共享锁, 因为读取并没有改变行 r 的数据, 称这种情况为锁兼容 (Lock Compatible)。 但若有其他的事务T3想获得行r的排他锁, 则其必须等待事务T1, T2释放行r上的共享锁——这种情况称为锁不兼容。因为获取排他锁一般是为了改变数据,所以不能同时进行读取或则其他写入操作。
从上表可以发现,X锁与任何锁都不兼容,而S锁仅和S锁兼容。
此外, InnoDB 存储引擎支持多粒度锁定, 这种锁定允许事务在行级上的锁和表级上的锁同时存在。为了支待在不同粒度上进行加锁操作, InnoDB 存储引擎支持 一种额外的锁方式, 称之为意向锁 (Intention Lock)。意向锁是将锁定的对象 ...
服务网格总结
前言:服务网格(ServiceMesh)是一个专门处理服务通讯的基础设施层。它的职责是在由云原生应用组成服务的复杂拓扑结构下进行可靠的请求传送。在实践中,它是一组和应用服务部署在一起的轻量级的网络代理,并且对应用服务透明。
介绍服务网格(Service Mesh)是一个专门处理服务通讯的基础设施层。它的职责是在由云原生应用组成服务的复杂拓扑结构下进行可靠的请求传送。在实践中,它是一组和应用服务部署在一起的轻量级的网络代理,并且对应用服务透明。
服务网格从总体架构上来讲比较简单,不过是一堆紧挨着各项服务的用户代理,外加一组任务管理组件组成。
管理组件被称为控制层或控制平面(control plane),负责与控制平面中的代理通信,下发策略和配置。
代理在服务网格中被称为数据层或数据平面(data plane),直接处理入站和出站数据包,转发、路由、健康检查、负载均衡、认证、鉴权、产生监控数据等。
一个典型的服务网格部署网络结构图如下:
其中绿色方块为应用服务,蓝色方块为 Sidecar Proxy,应用服务之间通过 Sidecar Proxy 进行通信,整个服务通信形成图中的蓝色网络 ...
MybatisPlus快速入门
前言:MybatisPlus,为简化开发、提高效率而生!
MybatisPlusMyBatisPlus概述 需要的基础:MyBatis、Spring、SpringMVC
为什么要学习它呢?
MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成!
市面上主流的一些框架:
JPA:国外使用的较多,集成springboot时使用较多
tk-mapper:开源项目使用较多
MyBatisPlus:国内较为主流的框架
简介MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
官网:https://baomidou.com/ MyBatis Plus,简化 MyBatis !
特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Serv ...
Java经典面试题总结(含答案)
前言:208道Java经典面试题总结,背完即可冲刺大厂!
1、JDK 和 JRE 有什么区别?JDK(Java Development Kit),Java开发工具包
JRE(Java Runtime Environment),Java运行环境
JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。
2、== 和 equals 的区别是什么?对于基本类型,==比较的是值;对于引用类型,==比较的是地址;equals不能用于基本类型的比较;如果没有重写equals,equals就相当于==;如果重写了equals方法,equals比较的是对象的内容;
3、final 在 java 中有什么作用?(1)用来修饰一个引用 如果引用为基本数据类型,则该引用为常量,该值无法修改; 如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。 如果引用时类的成员变量,则必须当场赋值,否则编译会报错。
(2)用来修饰一个方法当使用final修饰方法时,这个方法将成为最终 ...
Linux快速入门
linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力已经得到业界的认可,目前大多数企业级应用甚至是集群项目都部署运行在linux操作系统之上,很多软件公司考虑到开发成本都首选linux,在中国软件公司得到广泛的使用。
服务器相关知识为什么程序员都需要一个自己的服务器?
作为一个程序员,必须要学会发布自己的网站和项目!
练习Linux操作
把自己的远程仓库、远程数据库、远程tomcat等搭建在服务器上
练习Linux进行任意的环境部署操作! 大部人都是Window下开发,不熟悉Linux
如何购买服务器?新手可以先去阿里云领一个免费的服务器先用着
阿里云新人服务器领取地址:学生的话后期可以购买学生机,阿里云只有未满24周岁都可以享受学生机优惠
优惠地址:https://www.aliyun.com/minisite/goods?userCode=0phtycgr
购买服务器时系统选择CentOS 推荐版本7.X,因为8.0之后改了好多命令,云盘的话选择40G就够用了,如下图所示:
买完服务器之后该干什么?首先服务器就是一个远程的Linux
在阿里云购买服务器需要开 ...