自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

游骑兵

-Rangers

  • 博客(18)
  • 资源 (3)
  • 收藏
  • 关注

原创 Spring(一):Spring概述及相关概念

Spring简介Spring主要作用是用来解耦,降低代码之间的耦合度。根据功能的不同,可以将系统的代码分为主业务逻辑与系统服务逻辑。主业务逻辑之间代码联系紧密,相互调用较多,复用性相对较低;系统服务逻辑相对来说功能独立,主要是为主业务逻辑提供系统级的服务,如日志、安全、事务等,复用性相对较高。Spring根据代码的功能特点,将降低耦合度分为了两种方式:控制反转IoC与面向切面AOP。IoC控制反转是的主业务在相互调用的过程中,不需要使用者手动维护之间的关系,即不需要手动创建对象,..

2021-03-15 12:41:52 192

原创 MyBatis(十一):MyBatis架构流程浅析

架构分层我们将MyBatis架构分为三层,分别为接口层、数据处理层和框架支撑层接口层:提供外部接口调用的API,使用端通过这些API来操作数据库,接口层收到请求后会调用数据处理层完成具体的数据处理使用端可以通过两种方式调用接口层:MyBatis提供的API、Mapper动态代理数据处理层:负责具体的SQL查找、解析、执行与执行结果映射处理,主要负责根据具体的请求完成数据库操作框架支撑层:负责基础的功能支撑,主要功能有连接管理、事务管理、配置加载和缓存管理主要组件及关系..

2021-03-14 23:29:01 280 2

原创 MyBatis(十):MyBatis延迟加载/懒加载详解

延迟加载介绍​ MyBatis中的延迟加载,也成为懒加载,是指在进行关联查询时,按照设置的延迟规则推迟对关联对象的查询。延迟加载可以有效的减少数据库的压力。延迟加载只是针对有延迟设置的关联对象的推迟查询,对于主主查询是直接进行执行SQL语句。MyBatis关联查询加载时机直接加载:执行完主对象的查询后,马上执行对关联对象的查询语句侵入式延迟:执行完对主对象对查询后,不会执行对关联对象的查询,但当访问主对象的属性详情是,就会执行关联对象的查询深度延迟:只有当真正访问关联对象的详情时,才会执..

2021-03-13 17:48:29 964

原创 MyBatis(九):MyBatis类型处理器(TypeHandler)详解

TypeHandler简介TypeHandler,顾名思义类型转换器,就是将数据库中的类型与Java中的类型进行相互转换的处理器。MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型实现讲解经常自定义类型转换器方式有两种,实现 TypeHandler 接口, 或继承抽象类 BaseTypeHandle,并且可以指定转换后的字段类型。其实BaseTypeHandler也是..

2021-03-13 14:34:35 2802 5

原创 MyBatis(八):MyBatis插件机制详解

MyBatis插件插件机制简介​ MyBatis插件其实就是为使用者提供的自行拓展拦截器,主要是为了可以更好的满足业务需要。​ 在MyBatis中提供了四大核心组件对数据库进行处理,分别是Executor、Statement Handler、ParameterHandler及ResultSetHandler,同时也支持对这四大组件进行自定义扩展拦截,用来增强核心对象的功能。其本质上是使用底层的动态代理来实现的,即程序运行时执行的都是代理后的对象。MyBatis允许拦截的方法如下:执行器Ex..

2021-03-12 16:40:36 283

原创 MyBatis(七):MyBatis缓存详解(一级缓存/二级缓存)

一级缓存​ MyBatis一级缓存上SqlSession缓存,即在统一SqlSession中,在不执行增删改操作提交事务的前提下,对同一条数据进行多次查询时,第一次查询从数据库中查询,完成后会存入缓存,其余从缓存中直接读取。MyBatis一级缓存默认开启。二级缓存​ MyBatis二级缓存是命名空间NameSpace缓存,也可理解为二级缓存被多个SqlSession共享,是一个全局变量。​ 二级缓存默认是关闭的,需要手动配置进行开启。开启二级缓存后,数据查询流程为:二级缓存->一级缓..

2021-03-11 16:43:57 389 2

原创 MyBatis(六):MyBatis复杂映射

一对一、多对一一对一/多对一都是使用association标签来进行关联,并制定javaType属性,定义resultMap接收查询结果例如:查询订单的时候需要一并把用户信息查出来,一个订单对应一个用户,同时多个订单对应同一个用户,Order实体增加user属性<select id="findAll" resultMap="orderMap"> SELECT *,U.`name`,U.address FROM `order` O LEFT JOIN `user` U ON O...

2021-03-10 21:49:19 222

原创 MyBatis(五):MyBatis简介及基本使用

MyBatist简介​ MyBatis是一款优秀的基于ORM的半自动轻量级持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO (Plain Old Java Objects,普通老式Java对 象)为数据库中的记录。MyBatis的优点​ 半自动化的持久层框架,对开发人员开说,核心sql还是需要自己进行优化,sql和java..

2021-03-10 16:54:27 161

原创 内省概念及详解(MethodDescriptor、PropertyDescriptor)

内省(Introspector)概念​ 内省Introspector 是Java提供的操作 JavaBean 的 API,用来访问某个属性的 getter/setter 方法。对于一个标准的 JavaBean 来说,它包括属性、get 方法和 set 方法,这是一个约定俗成的规范。为此 sun 提供了 Introspector 工具包,来使开发者更好或者更灵活的操作 JavaBean。例如:User类中有个name属性,那我们可以通过getName/setName来获取/设置name的值,内省就是通..

2021-03-10 13:17:09 812

原创 反射概念及详解

Java中最强大的技术莫过于发射,在程序运行过程中,可以做很多操作实例化任意一个类的对象获取任意类的名称、包、属性、方法、注解、类型、类加载器等获取任意对象的属性,并且能修改对象的属性调用任意对象的方法判断任意一个对象所属的类新建User类package com.rangers.reflects;/** * @Author Rangers * @Description * @Date 2021-03-09 **/@TestAnnotationpublic class U

2021-03-09 18:32:57 394

原创 代理模式详解:静态代理、JDK动态代理与Cglib动态代理

代理模式简介分类概念​ 代理,是为了在不修改目标对象的基础上,增强目标方法的业务逻辑。​ 客户类需要执行的是目标对象的目标方法,但是真正执行的是代理对象的代理方法,客户类对目标对象的访问是通过代理对象来实现的。当然,代理类与目标类需要实现同一个接口。举例生活中遇到了官司,我们平常老百姓对法律的了解不全面,所以一般都会请律师处理。目标对象:法庭上我们一般称为当事人即目标对象代理类:律师称为代理律师即代理类共同接口:都为了一个共同的目标努力赢得官司即为共同接口目标方法:我们所做的提..

2021-03-09 16:27:34 149 1

原创 MyBatis(四):自定义持久层框架优化

修改IUserDao、UserMapper.xmlpackage com.rangers;import com.rangers.entity.User;import java.util.List;/** * @Author Rangers * @Description 用户数据库访问Dao * @Date 2021-03-07 **/public interface IUserDao { /** * @Author Rangers * @Descri..

2021-03-08 23:50:29 117

原创 MyBatis(三):自定义持久层框架实现

新建Maven工程架构端MyPersistent、使用端MyPersistentTest,使用端引入架构端Maven坐标MyPersistentTest使用端配置新增依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23..

2021-03-08 23:49:45 119 2

原创 MyBatis(二):自定义持久层框架思路

自定义持久层框架思路分析使用端引入架构端Maven依赖SqlMapConfig.xml—数据库配置信息(数据库连接jar名称、连接URL、用户名、密码),引入Mapper.xml的路径XxMapper.xml—SQL配置信息(SQL语句、参数类型、返回值类型)架构端(本质对JDBC封装)加载使用端配置信息(数据库配置信息、SQL配置信息)为输入流,读入内存解析配置文件输入流(使用Dom4j解析)​ 创建SqlSessionFactoryBuilder类,编写build

2021-03-08 23:48:06 113 1

原创 MyBatis(一):使用JDBC存在的问题

JDBC使用步骤:a:加载 JDBC 驱动程序b:创建数据库的连接对象Connectionc:根据链接获取Statementd:拼接SQL语句及设置参数e:执行SQL并获取结果集f:关闭使用的JDBC对象具体代码如下public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ..

2021-03-08 23:46:22 156

原创 List分页工具类

首先,编写分页工具类package listPaging;import java.util.*;/** * @Auther: Sunny * @Date: 2018/8/20 0020 11:24 * @Description: */public class ListPagingUtil { /** * @param list 进行分页的list ...

2018-08-22 09:48:17 2491 1

原创 生成图片验证码工具类

首先绘制图片依赖 commons-codec-1.10.jar包,我已上传package PicCheckCode;import org.apache.commons.codec.binary.Base64;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;imp...

2018-08-03 21:02:18 906

原创 时间工具类

package time;import org.slf4j.LoggerFactory;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * @Description 时间日期处理 * @a...

2018-08-03 21:02:02 172

commons-codec

java中绘制图片所需jar包..

2018-08-02

apache-maven-3.5.0-bin.zip

apache-maven-3.5.0-bin.zip

2018-04-03

navicatpremiumx64位

Navicatpremiumx64位,非常好用的MySQ界面工具..............................................................................................................................................................................................................

2018-04-03

空空如也

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

TA关注的人

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