自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 多线程/并发编程——国庆期间肝了三天两万字的线程池详解

文章目录一、Executor二、ExecutorService三、Callable、Future和FutureTask1、Callable接口2、Future接口3、FutureTask类四、Executor框架整体结构五、ThreadPoolExecutor1、FixedThreadPool2、CachedThreadPool3、SingleThreadPool六、ScheduledThreadPoolExecutor1、ScheduledThreadPool七、ForkJoinPool1、ForkJo.

2020-10-09 10:07:26 401 6

原创 多线程/并发编程——阻塞队列(简要)

文章目录一、阻塞队列概述二、ArrayBlockingQueue三、LinkedBlockingQueue三、DelayQueue四、SynchronusQueue在本篇文章中,我们将会对 Java 并发中的同步(阻塞)队列做基本的简要总结。虽然在高并发情况下,我们也并不会真的手动使用这些容器来存放数据,但是高并发情况下我们一定都是会使用线程池的,而不同的线程池,其底层对于任务的处理都是依赖于不同的同步队列器来实现的,所以对于阻塞队列器的学习,最起码有一个简单的了解还是很有必要的。由于笔者目前还是在.

2020-10-07 21:26:11 554

原创 多线程/并发编程——面试再也不怕 ThreadLocal 了

文章目录一、什么是ThreadLocal二、使用示例三、源码解析1、set() 方法2、get() 方法3、Entry 内部类4、remove() 方法四、ThreadLocal的应用1、声明式事务五、ThreadLocal的内存泄漏1、ThreadLocal 会有内存泄漏吗?2、内存泄漏的解决在前面的文章中,我们已经知道了线程安全及实现机制:多线程——线程安全及实现机制,在 Java 中主要从以下三个方面来实现线程安全:互斥(阻塞)同步:多线程——深入剖析 Synchronized、多线程\并发编程

2020-10-06 17:17:53 347 1

原创 多线程/并发编程——同步工具类(CountDownLatch、Semaphore、ReadWriteLock、CyclicBarrier )

多线程/并发编程——同步工具类文章目录多线程/并发编程——同步工具类一、CountDownLatch二、Semaphore三、ReadWriteLock四、CyclicBarrier上一篇文章中,我们详细剖析了并发工具包 J.U.C 的底层实现 AQS 的细节,不过只解释了基于 AQS 的最常用的同步工具锁 ReentrantLock。诚然 ReentrantLock 是很常用、很重要的一个同步工具类。不过基于 AQS 其实还有很多同步工具类,下面我们就来学习一下这些同步工具类的简单实用本篇文章中只

2020-10-04 20:59:20 428 2

原创 Redis——基于Spring的开发示例(连接、序列化、high/low api)

文章目录一、基本开发1、建立spring boot项目2、与vm中的redis建立连接3、测试连接二、high/low API及序列化1、high level apiRedisTemplateStringRedisTemplate2、low level api3、操作复值——hash1、原始方式存取2、封装成JSON对象存取(Jackson2HashMapper)3、设置序列化器4、自定义 Template三、开发流程总结在前面的文章中,我们学习了有关 Redis 的几乎所有的重点内容,都属于理论内容,只

2020-10-03 20:21:31 1141 8

原创 Redis——集群分区(一致性哈希算法/预分区/Cluster/Twemproxy/Predis)

文章目录一、数据分治1、Client 端处理1、逻辑拆分2、hash 算法3、一致性哈希算法2、Server端处理1、代理——Proxy2、负载均衡二、预分区三、官方Redis分区介绍1、分区概念2、为什么分区非常有用?3、不同的分区实现方案4、持久化数据还是缓存?5、预分片四、Redis分区实现1、Redis Cluster集群分区2、代理分区——Twemproxy3、支持一致性哈希的客户端——Predis(重要)在上一篇文章中我们通过主从复制可以人为的搭建集群,也可以通过 Sentinel 管理多台

2020-10-03 19:55:12 1346 1

原创 Redis——集群高可用(脑裂/主从复值/哨兵Sentinel)

Redis——集群高可用文章目录Redis——集群高可用一、概念(主从、主备)二、脑裂二、主从复制配置三、哨兵机制上一篇文章中我们学习了有关集群的理论性知识,知道了单机情况下会产生什么问题?引出了为什么要搭建集群。在本篇文章中我们将要学习一下如何通过集群保证服务高可用注意:本篇文章并没有通过命令行演示如何搭建一个高可用集群,如何搭建在官网中都有详细教程,所以把搭建过程的命令行、环境配置等记录下来毫无意义,建议每个人都要实际动手搭建一遍。只看是没有用的,只有动手做了才能理解,才能算是自己的东西一

2020-10-03 18:24:20 762

原创 Redis——Redis集群理论

Redis——Redis集群理论文章目录Redis——Redis集群理论一、为什么需要搭建 Redis 集群1、单点故障2、容量有限3、压力过大二、AKF服务拆分原则1、X轴水平扩展2、Y轴服务拆分3、Z轴数据分区三、基于AKF的Redis集群1、水平扩展2、纵向扩展四、集群的问题——数据一致性1、强一致性2、弱一致性3、最终一致性一、为什么需要搭建 Redis 集群在前面的文章中,我们已经学习过 Redis 在单机情况下,Redis 的常见应用:缓存数据库如果是当作缓存的时候,当服务挂掉重

2020-10-03 18:06:06 2165 5

原创 Redis——Redis用作数据库(持久化/RDB/AOF)

Redis 用作数据库文章目录Redis 用作数据库一、持久化之RDB1、时点性2、RDB配置3、优缺点RDB的优点RDB的缺点二、持久化之AOF1、AOF配置2、优缺点AOF 优点AOF 缺点Redis 用作缓存,其特点之一就是数据可以丢,只需要保证其响应急速,性能较高!但是如果把 Redis 做数据库:数据绝对不能丢的,所以除了保证其速度之外,还必须保证其持久性,数据一定不可以丢失而我们知道 Redis 处于内存,内存数据掉电易失!所以如果想要使用 Redis 作为数据库,必须要保证其持久性只

2020-10-03 17:27:45 3906 6

原创 Redis——Redis用作缓存(内存回收/穿透/击穿/雪崩)

Redis 用作缓存文章目录Redis 用作缓存一、概念二、设置 key 有效期三、内存回收策略四、有关缓存的常见面试题1、缓存穿透2、缓存击穿3、缓存雪崩一、概念Redis 既可以做缓存,又可以做数据库。那么 Redis 做缓存与数据库间的区别?首先需要明白,在系统中使用缓存并不是为了秀技术,而是为了解决架构存在的问题使用 Redis 作为缓存的目的:首先Redis 数据是存在于内存中的,内存速度快于磁盘千百倍,所以使用缓存一能够加快请求的响应速度再就是让大量的查询在到达缓存的时候,就

2020-10-03 17:04:17 644

原创 Redis——Redis的进阶使用(管道/发布订阅/事务/布隆过滤器)

Redis的进阶使用文章目录Redis的进阶使用一、管道(pipelining)二、发布订阅(Pub/Sub)三、Redis 事务四、布隆过滤器在上一篇文章中我们详解 Redis的 key-value 键值对模型中 value 的细节点,重点在于理解 value 支持的五种数据结构,对于每种数据结构的基本用法(即常用命令),我们还要对每种数据结构的优劣势,以及常用业务场景要做到心中有数作为缓存之王,Redis 绝对不可能只有这么一点儿功能,下面我们就来学习一下 Redis 的进阶使用其实从 Red

2020-10-03 16:42:16 495

原创 Redis——详解五种数据结构

Redis——详解五种数据结构文章目录Redis——详解五种数据结构一、String1、字符串类型2、数值类型3、bitmap二、list三、hash四、set五、sorted_set在上一篇文章中我们已经大致了解了 Redis 在并发场景下的工作流程,下面我们就来学习一下 Redis 的应用层面的东西前面我们讲了 Redis 与 memcache 的最本质的区别就是 Redis 键值对数据 key–value 中的 value 有五种数据类型,基于这五种数据类型及 Redis 提供的对五种数据结构操

2020-10-03 11:28:17 1685

原创 多线程/并发编程——两万字详解AQS

多线程/并发编程——并发锁的底层实现AQS详解文章目录多线程/并发编程——并发锁的底层实现AQS详解一、AQS概要1、AQS 概念2、AQS 的同步队列模型二、状态位 state三、Node 节点四、出入同步队列的实现--CAS五、基于CountDownLatch分析AQS共享模式的实现六、基于ReentrantLock分析AQS独占模式的实现1、ReentrantLock 与 AQS 的关系2、ReentrantLock非公平锁的实现3、ReentrantLock非公平锁的实现在前面我们学习 Reen

2020-09-23 09:57:22 359 2

原创 Redis入门--万字长文详解epoll

初始RedisRedis自此开始,希望善始善终文章目录初始Redis一、计算机基础常识1、磁盘与内存2、I/O Buffer:4K3、Data page:4K4、索引5、B+树二、缓存三、Redis1、Redis优势--计算向数据移动2、Redis 如何处理高并发?--Epoll保证并发效率--epoll保证线程安全--单线程四、IO 技术的发展1、BIO2、NIO3、多路复用4、mmap--共享空间5、epoll6、总结7、补充:零拷贝技术--sendfile一、计算机基础常识1、磁盘与内存数据

2020-09-16 23:38:00 1295 6

原创 多线程/并发编程——CAS、Unsafe及Atomic

多线程/并发编程——CAS、Unsafe及Atomic文章目录多线程/并发编程——CAS、Unsafe及Atomic一、无锁CAS1、无锁的执行者——CAS2、CAS 的缺陷——ABA问题二、CAS 的使用支持——Unsafe三、Java 中 CAS 操作的使用——原子类 Atomic1、原子更新基本类型2、原子更新引用、数组、属性在前面的文章中,我们已经知道了线程安全及实现机制:多线程——线程安全及实现机制,在 Java 中主要从以下三个方面来实现线程安全互斥同步:多线程——深入剖析 Synchr

2020-09-06 16:03:47 243

原创 多线程\并发编程——ReentrantLock 详解

多线程\并发编程——ReentrantLock 详解文章目录多线程\并发编程——ReentrantLock 详解一、ReentrantLock 的基本使用1、锁的可重入性语义2、lock() 和 unLock()3、tryLock() -- 尝试加锁4、lockInterruptibly() -- 等待可中断5、公平锁6、Condition--锁绑定多个条件二、ReentantLock 的底层实现—AQS三、ReentantLock 与 Synchronized 的异同(面试常问)1、相同点2、不同点1、

2020-09-03 08:48:56 448 1

原创 多线程——深入剖析 Synchronized

多线程——Synchronized 详解文章目录多线程——Synchronized 详解一、Synchronzized 的三种使用方式1、Synchronzized 作用于实例方法2、Synchronized 作用于静态方法3、Synchronized 作用于代码块二、Synchronized 的底层语义原理1、Synchronized 的语义原理2、Synchronized 的局限三、JVM 对 Synchronized 的优化1、轻量级锁2、自旋锁3、偏向锁4、总结 Synchronized 的锁升级

2020-08-25 12:20:23 391

原创 多线程——线程安全及实现机制

多线程——线程安全及实现机制文章目录多线程——线程安全及实现机制一、线程安全概念二、Java 语言中的线程安全1、不可变2、绝对线程安全3、相对线程安全(重要)4、线程兼容三、线程安全的实现机制1、互斥同步(Synchronized、Reentrantlock)2、非阻塞同步(CAS、原子类)3、无同步方案(ThreadLocal)四、总结一、线程安全概念讨论线程安全,需要以多个线程之间存在共享数据访问为前提。因为如果根本不存在多线程,又或者一段代码根本不会与其他线程共享数据,那么从线程安全的角度来看

2020-08-23 22:20:41 592

原创 多线程——Volatile 关键字详解

多线程——Volatile 关键字文章目录多线程——Volatile 关键字一、概念二、Volatile保证可见性三、Volatile禁止指令重排序四、总结一、概念在前一篇文章中,我们详细介绍了 Java 内存模型,我们可以发现 Java 内存模型都是围绕着在并发过程中如何处理原子性、可见性和有序性三个特征来建立的,简单回顾一下为什么会产生这三个特性:原子性:比如一段代码运行在服务器,有一段代码会被所有线程访问,每一个线程都会修改里面的共享变量值,为了保证一个线程在修改的时候,其他的线程不会进来捣

2020-08-22 23:02:52 425 1

原创 多线程—Java内存模型与线程

Java内存模型与线程一、概述由于计算机的 CPU 运算速度与它的存储和通信子系统的速度差距过大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望 CPU 大部分时间处于等待其他资源的闲置状态,想要充分利用 CPU 的高速运算性能,就会让计算机同时处理多项任务,“压榨” CPU的运算性能。除了充分利用 CPU 的性能之外,一个服务端要同时对多个客户端提供服务,则是另一个更具体地并发场景。对于计算量相同地任务,程序线程并发协调地有条不紊,效率自然就会越高;反之,线程之间频繁争用数据,互

2020-08-16 22:42:15 316

原创 GC Tuning小白入门

GC Tuning在前面我们学习了GC相关知识,学习了基本的垃圾收集器使用,下面来简单对JVM调优入门,了解相关概念,如果想要深入理解,必须要进行实际的生产环境的磨练才可以掌握路漫漫其修远兮!一、常见垃圾回收器组合参数设定:(1.8)-XX:+UseSerialGC = Serial New (DefNew) + Serial Old小型程序才会用这种单线程的Serial,默认情况下不会是这种选项,HotSpot会根据计算及配置和JDK版本自动选择收集器JDK1.8及以前:PS + PO;

2020-08-05 23:11:56 935

原创 GC入门超详解

GC我们知道在整个JVM管理的内存中,程序计数器、虚拟机栈和本地方法栈都是属于线程私有的,因此这几个区域的内存分配和内存回收都具备确定性,不需要考虑内存回收,因为当方法或线程结束的时候,内存自然就被释放了而Java堆Heap则是由垃圾收集器来管理,有着很显著的不确定性:只有程序运行期间,我们才能知道程序究竟会创建哪些对象,创建多少个对象,这部分的内存分配和回收是动态的,垃圾收集器关注的正是这部分Heap内存该如何管理一、何为垃圾?1、垃圾概念在Heap空间存放着Java世界中几乎所有的对象实例,当

2020-08-05 23:02:19 57348

原创 JVM Runtime Data Area——运行时数据区

JVM Runtime Data Area——运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域各有各自的用途,以及创建和销毁时间,有的区域随着虚拟机在进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。一、程序计数器(重点)程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节

2020-08-05 22:50:15 304 2

原创 JMM——软硬件基础

JMM——软硬件基础一、硬件基础前置知识:计算机基础——CPU速度比内存快100倍,比磁盘快1000000倍在上面的模型图中我们知道,每个CPU内部有L1、L2两个缓存,那么当内存中的数据被load到每个CPU的缓存中,当其中一个CPU修改了数据,另一个CPU如何对数据进行即时同步(可见性),保证数据一致性?1、总线锁由于总线锁造成效率很低,很老的CPU才会使用总线锁,现在很少单独使用总线锁了2、MESI——缓存一致性协议缓存一致性协议有很多,不同的硬件厂商都有各自的实现Intel使用

2020-08-05 22:40:14 302

原创 JMM——对象的创建、内存布局及访问

JMM——对象的创建、内存布局及访问讲解HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程以某大厂面试题展开对象的内存布局问题1、请解释以下对象的创建过程?2、对象在内存中的存储布局?3、对象头具体包括什么?4、对象怎么定位?5、对象怎么分配?6、Object o = new Object在内存中占用几个字节?一、请解释以下对象的创建过程?这个问题其实就是问:new了一个对象,在本质上是怎样一个过程大致可分为以下步骤1、检查符号引用当JVM遇到字节码new指

2020-08-05 22:28:40 342

原创 类加载机制详解

类加载机制一、概念在前面我们学习了Class文件存储格式的具体细节,在Class文件中描述的各类信息,最终都需要加载到虚拟机中才能被运行和使用。而虚拟机是如何加载这些Class文件?Class文件中的信息进入到虚拟机后会发生什么变化?是我们这次需要学习的内容与那些在编译时需要进行连接的语言不同,在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略让Java语言进行提前编译会面临额外的困难,也会让类加载时稍微增加一些性能开销,但是却为Java应用提供了极高的扩展性和灵活性。J

2020-08-05 22:23:19 676

原创 JVM入门

JVM入门一、什么是JVMJVM即Java Virtual Machine (Java虚拟机)Java虚拟机从Java诞生以来,经过了长足的发展,只要遵循Java虚拟机规范,已经诞生有很多种JVM,而官方的HotSpot VM是我们最常用,也是最当之无愧的武林盟主,其余还有Exact VM、Embedded VM、IBM VM等。后面我们将针对HotSpot来深入理解Java虚拟机的世界1、JVM的语言无关性我们都知道计算机只认识 0 和 1 ,所以我们编写的程序都要被转化成 0 和 1 构成的二

2020-08-05 22:17:46 289

原创 Mybatis-Plus代码生成器简要

Mybatis-Plus代码生成器一、概念AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。MyBatis-Plus代码生成器:https://mp.baomidou.com/guide/generator.html详细配置细节:https://mp.baomidou.com/config/generat

2020-07-05 21:31:11 163

原创 Mybatis Plus快速入门

Mybatis Plus的使用老规矩,先看官网,通过官网我们就能够系统的学好Mybatis-Plus:https://mp.baomidou.com/一、概念MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通

2020-07-05 21:26:46 220

原创 SpringBoot配置数据源详解

SpringBoot配置数据源Spring Framework 为 SQL 数据库提供了广泛的支持。从直接使用 JdbcTemplate 进行 JDBC 访问到完全的对象关系映射(object relational mapping)技术,比如 Hibernate、Mybatis。Spring Data 提供了更多级别的功能,直接从接口创建的 Repository 实现,并使用了约定从方法名生成查询。一、JDBC操作1、创建项目导入相关依赖: <dependency>

2020-07-04 22:21:45 4018

原创 SpringBoot轻松整合Mybatis

SpringBoot整合Mybatis现在大多数开发工作,就是用SpringBoot集成Mybatis来完成数据交互的。一、使用Mybatis完成基本CRUD1、项目架构2、配置数据源spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/demo?serverTimezone=UTC driver-class-name: com.mysql.

2020-07-03 23:45:34 139

原创 SpringBoot中Thymeleaf模板引擎的使用

SpringBoot中Thymeleaf模板引擎的使用除了REST Web服务之外,我们还可以使用Spring MVC来服务动态HTML内容。SpringMVC支持多种模板技术,包括Thymeleaf、FreeMarker、JSP。当然,许多其他的模板引擎也有SpringMVC集成。其中Spring Boot中包含了以下模板引擎的自动配置支持:Thymeleaf(用的最多)FreeMarkerJSP(不推荐使用)Mustache在早期开发的时候,我们完成的都是静态页面也就是html页面,随

2020-07-02 22:26:42 331

原创 SpringBoot集成SpringMVC详解

SpringBoot整合SpringMVCspringboot在开发web项目的时候具备天然的优势,现在的很多企业级开发都是依托于springboot的。使用springboot的步骤:​ 1、创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好​ 2、手动在配置文件中配置部分配置项目就可以运行起来了​ 3、专注编写业务代码,不需要考虑以前那样一大堆的配置了。一、SpringBoot整合Servlet1、编写Servlet类编写Ser

2020-07-02 22:23:15 5334

原创 Spring Boot配置文件详解

Spring Boot配置文件SpringBoot中的配置也是通过配置文件来完成的,在SpringBoot中主要有两种配置文件格式。propertiesyaml一、propertiesproperties配置文件是我们使用SSM的时候最常用的配置文件了,在后缀为properties的配置文件中,是以key=value的方式进行配置的。比如数据库连接配置文件:db.propertiesserver.port=8081jdbc.driver=com.mysql.cj.jdbc.Driver

2020-06-30 23:37:00 228 1

原创 初识Spring Boot

初识Spring Boot不废话,先看官网:https://spring.io/projects/spring-boot一、Spring Boot基本介绍1、回顾SpringSpring是为了解决企业级应用开发的复杂性而产生的,就是为了简化开发。Spring为了降低开发复杂性的4种关键策略:基于pojo的轻量级和最小侵入性编程基于IOC,依赖注入和面向接口实现松耦合基于切面AOP和惯例进行声明式编程通过切面和模板减少重复代码2、Spring Boot的优点为所有spring开发者

2020-06-30 23:25:41 180

原创 Mybatis—逆向工程

Mybatis—逆向工程一、概念起初我们是根据数据库建表来对应的编写我们的实体类bean,类的属性要和数据库表一一对应。现在我们可以使用逆向工程来根据数据库表自动的生成我们的实体类bean。除此之外,逆向工程还能生成Dao层接口的基本的增删改查方法,并且生成Mapper接口代理中的基本增删改查方法的SQL实现。原来这些功能需要我们手动编写,现在可以使用逆向工程帮我们自动生成,不过逆向工程只能生成简单的增删改查操作,许多复杂的sql语句仍然需要我们根据业务逻辑手动编写。二、使用1、导入pom依赖

2020-06-28 22:50:27 291

原创 Mybatis—缓存机制

Mybatis—缓存机制老规矩,先看官网:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#cache一、概念缓存是什么以及使用缓存的好处大家应该都了解,不了解的话说明你需要努力了,该充电了少年。Mybatis作为司职与数据库打交道的框架,当然会有缓存机制啦,那么在Mybatis中是如何使用缓存的呢?1、Mybatis中的缓存机制如果没有缓存,那么每次查询的时候,都要从数据库中检索数据,由于IO的瓶颈,导致整个系统的瓶颈受限于IO的缓慢速度,所以在很

2020-06-28 22:43:16 209

原创 Mybatis—动态SQL

Mybatis—动态SQL老规矩,官网是第一手学习资料,一定要培养看官网学习的能力:Mybatis官网——动态SQL:https://mybatis.org/mybatis-3/zh/dynamic-sql.html一、什么是动态SQL动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动

2020-06-27 21:33:22 236

原创 Mybatis配置文件详解

Mybatis配置文件详解在上一篇文章中我们已经学习了如何通过Mybatis简单快捷的完成增删改查的基本功能,我们可以发现使用Mybatis的时候,主要是基于xml配置文件的方式来配置,共有两个配置文件——mybatis-config.xml(mybatis的全局配置文件)和EmpDao.xml(sql语句映射配置文件)。以下我们就来学习这两个配置文件的详细细节。一、全局配置文件详解如果想要详细学习,建议直接从官网学习mybatis官网XML配置:https://mybatis.org/mybat

2020-06-27 21:23:13 424 1

原创 Mybatis入门详解

初识Mybatis一、数据库操作框架的发展历程1、JDBCJDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序优点:运行期:快捷、高效缺点:编辑期:代码量大、繁琐异常处理、不支持数据库跨平台我们几乎都熟悉JDBC的使用,现在开发中已经没有人使用原生

2020-06-25 21:54:48 225

空空如也

空空如也

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

TA关注的人

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