自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mybatis框架

Mybatis中的SqlSession与mapper的动态代理

  • 博客(12)
  • 收藏
  • 关注

原创 linux mysql8.0安装

1.官网https://downloads.mysql.com/下载对应系统的版本

2021-06-01 12:04:17 97

原创 书写高性能sql总结

前言本文将结合实例,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助。*1、查询SQL尽量不要使用select ,而是select具体字段。反例子:select * from employee; 正例子:select id,name from employee; 理由:只取需要的字段,节省资源、减少网络开销。select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。2、如果知道查询结果只有一条或者只要最大/最小一条记录,建议用limi

2021-02-03 23:29:15 96

原创 linux mongo数据库安装

一、安装过程1.到mongodb官网https://www.mongodb.com/download-center#community下载对应系统的压缩包(注意不要选错系统版本,也可以在本地下载好后上传到云服务器),这里根据需要选择企业版或社区版,企业版主要增加了安全认证,系统认证等功能.我选择下载社区版(免费).2.解压tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz #

2020-11-16 23:35:53 143

原创 设计模式之代理模式

一、背景代理模式在实际应用中非常的广泛,例如:spring事务管理以及spring AOP的底层实现就是采用了此设计模式,本文在实践的基础上对代理模式进行了总结。二、代理模式的定义1.定义—为其他对象提供一种代理以控制对这个对象的访问。代理模式也被称为委托模式。2.通用类图三、代理模式的分类1.静态代理2.JDK动态代理3.CGLIB代理...

2020-11-15 16:22:31 65

原创 浅谈并发编程中的死锁及其规避策略

一、基础定义1.限定资源----并发环境中有固定大小或数量的资源。例如数据库连接 池、固定大小的读写缓存等。2.互斥----每一个时刻只能有一个线程能访问共享数据或共享资源。3.线程饥饿---一个或一组线程很长时间内或永久被禁止。例如总让执行快的线程先运行,假如执行快的线程没完没了,那么执行时间长的线程就会“挨饿”。4.死锁----两个线程或多个线程相互等待对方执行结束。每个线程都拥...

2019-12-16 22:50:57 101

原创 分布式锁的实现

1 Redisson组件package com.vpal.beifu.bfms.admin.redis;import java.util.concurrent.TimeUnit;import javax.annotation.PostConstruct;import org.redisson.Redisson;import org.redisson.api.RLock;impor...

2019-09-10 22:44:22 560

原创 自定义排他锁

**背景:**在多线程编程中,为了避免共享数据的不一致性,对共享数据进行操作的时候必须要加锁,在java中可以使用synchronized关键字实现排他锁,但是使用该关键字有2大缺陷:1.无法控制线程的阻塞时长;2.阻塞是不可被中断的.为了避免出现以上情况,我们可以进行自定显示锁,实现自定义阻塞时长并且是可中断的.代码示例如下:1.定义接口package thread;import j...

2019-08-17 19:17:53 597

原创 分页列表查询通用类

@Datapublic class PageResult <T> { private Integer totalPage; private Integer totalSize; private Integer pageSize; private Integer currentPage; private Integer offset; p...

2019-07-30 22:02:13 350

原创 AOP编程的几种实现方式

AOP编程即面向切面编程,以下是利用AspectJ实现的几种Aop编程1.利用标识方法@Aspect@Componentpublic class InterfacePermInterceptor { private static final Logger LOG = LoggerFactory.getLogger( InterfacePermInterceptor.class );...

2019-07-29 00:46:40 537

原创 SpringBoot应用启动、关闭、重启shell脚本

#!/bin/bash# Java ENV#export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home#export JRE_HOME=${JAVA_HOME}/jre# Apps Info# 应用存放地址APP_HOME="/usr/local/app"# 应用名称APP_...

2019-07-04 09:58:20 662

原创 navicat premium 12.0 安装与破解

准备材料官网下载Navicat Premium或者Navicat for MySQLhttp://www.navicat.com.cn/products下载注册机:Navicat_Keygen_Patch_v3.7_By_DFoX_URET.exehttps://www.lanzous.com/i1jw6oh操作步骤:算了,比较简单,看原文吧https://www.jianshu.c...

2019-06-13 16:15:31 121

原创 Mybatis中的SqlSession与mapper的动态代理的事务提交方式

Mybatis中的SqlSession与mapper的动态代理我们通过SqlSessionFactory.openSession()方法创建出SqlSession对象时,自动提交事务默认是关闭的,即每次用SqlSession对象必须显示执行commit().源码如下:欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markd...

2019-06-01 17:56:19 4553 6

空空如也

空空如也

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

TA关注的人

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