Mybatis源码之ResultSet结果集处理
时序图详细步骤PreparedStatementHandler#query@Override public <E> List<E> query(Statement statement, ResultHandler resultHandler) throws SQLException
【Spring Boot 快速入门】Spring Boot集成Druid数据监控
前言 Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。本文将结合Spring Boot集成Druid,进行数据源监控。初识Druid Druid是阿里开源的一个JDBC应用组件, 其包括三部分:DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系; DruidD
程序员人均年薪百万?Java程序员该如何做到高薪?
程序员这个行业到底有什么魅力一度造就"360行,行行转IT”的盛况呢?作为当今最热门的行业之一,关于程序员的讨论多如牛毛。但不论如何,始终绕不过程序员传说中的高薪。网上程序员动辄年薪百万的传说特别耀眼,并且程序员总是给人一种忠厚老实不善于交际的感觉,所以在婚恋市场也特别受欢迎。虽然大部分程序员的收入没有网上传说的那么夸张,但是比传统行业拿的更多确实是存在的,这个行业的投入产出
SpringBoot实现RESTful服务接口
在实际使用SpringBoot开发项目的过程中,后端服务经常会遇到跨模块访问的需求,这就需要我们的服务接口有同一的开发规范,这样在跨模块调用时才能更方便、高效。而Spring Boot也为我们创建Web服务提供了非常强大的组件化支持,简单而方便,我们一起来看一下。RESTful服务在当下的分布式系统及微服务架构中,RESTful风格是一种非常流行的Web服务表现方式,RESTful,即
Mybatis源码之创建SqlSession对象
时序图详细步骤DefaultSqlSessionFactory#openSessionFromDataSource/** * 从数据源中获取SqlSession对象 * @param execType 执行器类型 * @param level 事务隔离级别 *&
【MySQL】MySQL索引深入剖析
索引是用来加快SQL执行速度的,那为什么索引可以加快检索速度呢?一、索引基础1.1 概念数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、更新数据库表中数据。剖析:索引是一种数据结构,用来加快SQL执行速度1.2 索引类型在MySQL中索引有这3种类型: 普通索引 唯一索引(主键索引也是唯一索引) 全文索引1.3 如何新建索引?alter tab
Redis 缓存有哪些淘汰策略?
在Redis中,内存的大小是有限的,所以为了防止内存饱和,需要实现某种键淘汰策略。主要有两种方法,一种是当Redis内存不足时所采用的内存释放策略。另一种是对过期key进行删除的策略,也可以在某种程度上释放内存。Redis采用的默认内存释放策略是noeviction-不删除,达到最大内存时,如需更多内存(存入数据),则操作报错;默认的过期key删除策略则是惰性删除+定期删除的方案;1
大厂面试必问:如何设置Java线程池大小?
一、什么是线程池?线程池: 是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时尽可能重用这些线程而不是新建一个线程。二、线程池种类介绍1. 线程池种类介绍——Executors1.1 newFixedThreadPool()newFixedThreadPool():固定线程数的线程池 public static Ex
用了redis一定可以保证原子性吗
概念什么原子性?程序在执行过程中,要么全部都执行,要么全部都不执行,不可能执行了一半,滞留了一半。我们知道redis是IO多路复用模型,即一个线程来处理多个TCP连接,这样的好处就是,即使客户端并发请求,也得排队处理,一定程度上解决了多线程模型带的并发问题,所以redis是并发安全的?从redis本身的架构模式来说,并发是安全的,不存在同时执行两个客户端的命令。但是如果因为某些业务场景
JVM 有哪些垃圾回收算法?
JVM垃圾回收算法标记-清除算法该算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。也可以反过来先标记所有不需要被回收的对象,标记完成以后回收没有被标记的对象。优缺点:执行效率不稳定,适用于对象存过较多的区域,适用于老年代会产生内存碎片何为清除?标记清除并不是真的置空,而是把需要清除的对象地址保存在空闲的地址列表里。下次有新对象需要加
Java并发编程系列-Synchronized 和显示锁 Lock 的实现原理
1. Synchronized 字节码分析前面我们已经知道了 Synchronized 在使用的时候有两种方式,一种修饰方法,一种是同步块的方式。示例:1 public class SyncDemo { public synchronized void a()
Spring Cloud Alibaba 系列之 Gateway(网关)
一、前言Spring Cloud 原先整合 Zuul 作为网关组件,Zuul 由 Netflix 公司提供的,现在已经不维护了。后面 Netflix 公司又出来了一个 Zuul2.0 网关,但由于一直没有发布稳定版本,所以 Spring Cloud 等不及了就自己推出一个网关,已经不打算整合 zuul2.0 了。Spring Cloud Gateway 是 Spring 公司基于 Sp
SpringBoot + Mybatis系列教程之 CURD 基本使用姿势
mybatis 作为数据的 ORM 框架,在国内的应用市场还是非常可观的,当初刚开始工作时使用 spring + mybatis 进行开发,后来也使用过 hibernate, jdbctemplate, jooq,mybatisplus 等其他的一些框架,就个人使用感触来讲 jooq 的使用姿势和写 sql 差不多,基本上可以会写 sql 的无需额外的培训,立马可以上手;hiberna
Java超神路——JVM 有哪些垃圾回收算法?
分代收集算法分代收集算法的设计原则:收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象经历垃圾收集过程的次数)分配到不同的区域之中存储。如果一个区域中大多数对象都是朝生夕灭,难以熬过垃圾收集过程的话,那么把它们集中放在一起,每次回收时只关注如何保留少量存活而不是去标记那些大量将要被回收的对象,就能以较低代价回收到大量的空间;如果剩下的都是难以消亡的对象,那把它
springboot之全局异常处理和统一响应对象
一、springboot异常处理1.SpringBoot 默认的异常处理机制默认情况,SpringBoot 提供两种不同响应方式 一种是浏览器客户端请求一个不存在的页面或服务端异常时,SpringBoot默认会响应一个html 另一种是使用postman等调试工具请求不存在的url或服务端异常时,默认返回json信息
MySql系列:正则表达式和数据过滤
引言鼓励有时比压力要重要!在学习的过程中,很多时候我们听到的都是,你要怎样,怎样,你瞧瞧谁谁谁,哪怕今天听不到这样的声音了,但因为曾经反复听到过而导致内心抗拒。虽然也知道自己要去学,但是很难坚持,学着学着就没有了方向,看到还有那么多不会的就更慌了,以至于最后心态崩了,更不愿意学。其实程序员的压力并不小,想成长几乎是需要一直的学习,就像似乎再也不敢说精通java了一样,知识量实在是随着学
精通Redis系列|字符串类型(String)命令详解
字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据,序列化后的数据,JSON化的对象甚至是一张图片。字符串类型的数据操作总的思想是通过key操作value,key是数据标识,value是我们感兴趣的业务数据。1、set 语法:set key value 功能:将字符串值 value 设置到 key 中,如果key已存在,后放的值会把前
看看Spring如何简化Spring XML配置
本文内容主要介绍了Bean的自动装配、基于注解的配置和基于Java类的配置对XML配置的简化。自动装配Bean的属性当Spring装配Bean的属性时,如果非常明确,则可以使用自动装配模式:自动装配类型手动:使用ref装配 策略: byName 假设属性的名字和bean的名字相同 <bean id="customer" class
MySQL中的乐观锁和悲观锁具体怎么实现的?
文章介绍对于MySQL中的乐观锁和悲观锁,可能很多的开发者还不是很熟悉,并不知道其中具体是如何实现的。本文就针对这个问题做一个实际案例演示,让你彻底明白这两种锁的区别。相关文章之前针对MySQL中的锁单独分享过一篇文章,对于MySQL锁还不够了解的可以仔细阅读以下该文。锁分类MySQL的中锁按照范围主要分为表锁、行锁和页面锁。其中myisam存储引擎只支持表锁,InnoDB不仅仅支持行
MySQL中的乐观锁和悲观锁具体怎么实现的?
文章介绍对于MySQL中的乐观锁和悲观锁,可能很多的开发者还不是很熟悉,并不知道其中具体是如何实现的。本文就针对这个问题做一个实际案例演示,让你彻底明白这两种锁的区别。相关文章之前针对MySQL中的锁单独分享过一篇文章,对于MySQL锁还不够了解的可以仔细阅读以下该文。锁分类MySQL的中锁按照范围主要分为表锁、行锁和页面锁。其中myisam存储引擎只支持表锁,InnoDB不仅仅支持行