- 博客(12)
- 收藏
- 关注
原创 书写高性能sql总结
前言本文将结合实例,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助。*1、查询SQL尽量不要使用select ,而是select具体字段。反例子:select * from employee; 正例子:select id,name from employee; 理由:只取需要的字段,节省资源、减少网络开销。select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。2、如果知道查询结果只有一条或者只要最大/最小一条记录,建议用limi
2021-02-03 23:29:15 114
原创 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 168
原创 设计模式之代理模式
一、背景代理模式在实际应用中非常的广泛,例如:spring事务管理以及spring AOP的底层实现就是采用了此设计模式,本文在实践的基础上对代理模式进行了总结。二、代理模式的定义1.定义—为其他对象提供一种代理以控制对这个对象的访问。代理模式也被称为委托模式。2.通用类图三、代理模式的分类1.静态代理2.JDK动态代理3.CGLIB代理...
2020-11-15 16:22:31 88
原创 浅谈并发编程中的死锁及其规避策略
一、基础定义1.限定资源----并发环境中有固定大小或数量的资源。例如数据库连接 池、固定大小的读写缓存等。2.互斥----每一个时刻只能有一个线程能访问共享数据或共享资源。3.线程饥饿---一个或一组线程很长时间内或永久被禁止。例如总让执行快的线程先运行,假如执行快的线程没完没了,那么执行时间长的线程就会“挨饿”。4.死锁----两个线程或多个线程相互等待对方执行结束。每个线程都拥...
2019-12-16 22:50:57 140
原创 分布式锁的实现
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 586
原创 自定义排他锁
**背景:**在多线程编程中,为了避免共享数据的不一致性,对共享数据进行操作的时候必须要加锁,在java中可以使用synchronized关键字实现排他锁,但是使用该关键字有2大缺陷:1.无法控制线程的阻塞时长;2.阻塞是不可被中断的.为了避免出现以上情况,我们可以进行自定显示锁,实现自定义阻塞时长并且是可中断的.代码示例如下:1.定义接口package thread;import j...
2019-08-17 19:17:53 629
原创 分页列表查询通用类
@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 388
原创 AOP编程的几种实现方式
AOP编程即面向切面编程,以下是利用AspectJ实现的几种Aop编程1.利用标识方法@Aspect@Componentpublic class InterfacePermInterceptor { private static final Logger LOG = LoggerFactory.getLogger( InterfacePermInterceptor.class );...
2019-07-29 00:46:40 558
原创 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 703
原创 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 149
原创 Mybatis中的SqlSession与mapper的动态代理的事务提交方式
Mybatis中的SqlSession与mapper的动态代理我们通过SqlSessionFactory.openSession()方法创建出SqlSession对象时,自动提交事务默认是关闭的,即每次用SqlSession对象必须显示执行commit().源码如下:欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markd...
2019-06-01 17:56:19 4722 6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人