🔍
📢

MyBatis Mapper动态代理类核心原理

本文将通过模拟Mybatis动态代理生成Mapper代理类,讲解Mybatis原理 1.平常我们是如何使用Mapper的 先写一个简单的UserMapper,它包含一个全表查询的方法,代码如下 public interface UserMapper { @Select("se...

Hibernate、MyBatis的相同点与不同点

相同点 Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。 其中SessionFactoryBuider,SessionFactory,Ses...

Java Comparable 和 Comparator

Comparable 和 Comparator 是 Java 的两个接口,从名字上我们就能够读出来它们俩的相似性:以某种方式来比较两个对象。但它们之间到底有什么区别呢?请随我来,打怪进阶喽! 01、Comparable Compar...

简单工厂、工厂方法及抽象工厂的区别

工厂模式一般分为简单工厂、工厂方法和抽象工厂三种,看了很多资料,好多讲的都是云里雾里的。要么是概念太多,让人看得一脸懵逼,要么是举得例子不太恰当,看了更让人迷惑了。经...

NPE空指针异常与Optional类

一、什么是空指针异常 当程序需要对象实例的时候返回null就会抛出空指针异常(NullPointerException,简称NPE)。包括以下情况: 调用一个null对象实例的方法 访问或修饰null对象的字段 获取数...

C3P0数据库连接池配置和使用

一、C3P0连接池 1、C3P0简介 C3P0是一个开源的JDBC连接池,应用程序根据C3P0配置来初始化数据库连接,可以自动回收空闲连接的功能。 2、核心依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-con...

泛型类、泛型方法、泛型接口、泛型数组以及泛型擦除原理

一、泛型的概念 泛型是 Java SE5 出现的新特性,泛型的本质是类型参数化或参数化类型,在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。 二、泛型的意义...

JGit库以编程方式拉取提交Git源代码

在 Java 程序中使用 Git ,有一个功能齐全的 Git 库,那就是 JGit 。 JGit 是一个用 Java 写成的功能相对健全的 Git 的实现,它在 Java 社区中被广泛使用。 JGit 项目由 Eclipse 维护。 依赖添加 有很...

Java关键字this、super、static、final、abstract

this关键字的作用 1、this是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题; 2、this可以调用成员变量,不能调用局部变量; 3、this也可以调用成员方法,但在普通方法...

Java/JDK动态代理以及CGLIB字节码增强

一、JDK动态代理 Java 在 java.lang.reflect 包中有自己的代理支持,该类(Proxy.java)用于动态生成代理类,只需传入目标接口、目标接口的类加载器以及 InvocationHandler 便可为目标接口生成代理类...