-
手写 Hibernate ORM 框架 05-mybatis 原理
什么是 MyBatis ?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。...
2020-06-21 07:11:16 |
Java
-
手写 mybatis 系列(二)mybatis interceptor 插件机制详解
前景回顾
第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis。
常言道,万事开头难,然后中间难。
mybatis 的插件机制是 mybatis 除却动态代理之外的第二大灵魂。
下面我们一起来体验一下这有趣的灵魂带来的痛苦与快乐~
插件的作用
在实际开发过程中,我们经常使用的Mybaits插件就是分页插件了,通过分页插件我们可...
2020-06-21 07:11:16 |
Java
-
手写 mybatis 系列(一)mybatis 手写 MVP 版本
什么是 MyBatis ?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。...
2020-06-21 07:11:16 |
Java
-
手写 Hibernate ORM 框架 04-持久化实现
本节内容
执行建表语句。
执行数据的保存
执行建表语句
Session
package com.ryo.hibernate.simulator.hibernate;
import com.mysql.jdbc.PreparedStatement;
import com.ryo.hibernate.simulator.hibernate.util.ConnectionUtil;
i...
2020-06-21 07:11:16 |
Java
-
手写 Hibernate ORM 框架 03-配置文件读取, 数据库连接构建
本节内容
hibernate.cfg.xml 配置文件的读取
数据库访问 Connection 的构建
hibernate.cfg.xml 读取
当然,代码中为了快速模拟,我们也可以将属性 hard code。
但此处为了模拟,就进行简单的实现
文件内容
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'...
2020-06-21 07:11:16 |
Java
-
手写 Hibernate ORM 框架 02-实体 Bean 定义,建表语句自动生成
本节内容
实体 Bean 的定义。
根据实体 Bean 生成对应的建表语句。
定义实体 Bean
简单的用户实体信息定义
package com.ryo.hibernate.simulator.model;
import com.ryo.hibernate.simulator.hibernate.annotations.Column;
import com.ryo.hibern...
2020-06-21 07:11:16 |
Java
-
手写 Hibernate ORM 框架 01-注解常量定义
本节内容
进行 Hibernate 的注解定义,常量定义
注解定义
直接模拟 Hibernate 定义几个最常见的注解。
@Entity
package com.ryo.hibernate.simulator.hibernate.annotations;
import java.lang.annotation.Documented;
import java.lang.annota...
2020-06-21 07:11:16 |
Java
-
手写 Hibernate ORM 框架 00-环境准备
手写框架
类似的还有其他系列,主要用于学习其中的原理。
Hibernate 属于比较早的框架了,后期将实现一套 mybatis。
列表
rpc
mvc
ioc
thread-pool
导航
手写 Hibernate ORM 框架-00-环境准备
手写 Hibernate ORM 框架-01-注解定义、常量定义
手写 Hibernate ORM 框架-02-实体 Bean...
2020-06-21 07:11:16 |
Java