手写框架
类似的还有其他系列,主要用于学习其中的原理。
Hibernate 属于比较早的框架了,后期将实现一套 mybatis。
手写 Hibernate 系列
手写 Hibernate ORM 框架 00-hibernate 简介
手写 Hibernate ORM 框架 00-环境准备
手写 Hibernate ORM 框架 01-注解常量定义
手写 Hibernate ORM 框架 02-实体 Bean 定义,建表语句自动生成
手写 Hibernate ORM 框架 03-配置文件读取, 数据库连接构建
手写 Hibernate ORM 框架 04-持久化实现
手写 Hibernate ORM 框架 05-整体效果测试验证
从零手写组件系列
java 从零手写 spring ioc 控制反转
java 从零手写 spring mvc
java 从零手写 jdbc-pool 数据库连接池
java 从零手写 mybatis
java 从零手写 hibernate
java 从零手写 rpc 远程调用
java 从零手写 mq 消息组件
java 从零手写 cache 缓存
java 从零手写 nginx4j
java 从零手写 tomcat
前言
Hibernate 相信接触过 java 的人都不会陌生。
今天我们一起写一个简化版的 Hibernate,用于加深对此 ORM 工具的理解。
代码地址
java 从零手写 hibernate
环境准备
- maven
本项目使用 maven 管理 jar 包
- jdk
jdk 为 1.8
pom.xml
依赖
pom 核心依赖如下:
<dependencies><dependency><groupId>com.github.houbb</groupId><artifactId>heaven</artifactId></dependency><!--============================== OTHER ==============================--><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--dom4j--><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId></dependency>
</dependencies>
jar 包功能说明
名称 | 作用 | 备注 |
---|---|---|
mysql-connector-java | 用于连接 mysql 数据库 | 本项目以 mysql 为例子 |
dom4j | 用于模拟读取 hibernate.cfg.xml | |
junit | 用于单元测试 |
整体目录结构
便于鸟瞰整个项目
D:.
├─java
│ └─com
│ └─github
│ └─houbb
│ └─hibernate
│ │ Session.java
│ │ Table.java
│ │
│ ├─annotations
│ │ Column.java
│ │ Entity.java
│ │ GenerateValue.java
│ │ Id.java
│ │
│ ├─constants
│ │ HibernateConstant.java
│ │ TypeMap.java
│ │
│ ├─model
│ │ User.java
│ │
│ └─util
│ CollectionUtil.java
│ ConnectionUtil.java
│ FieldUtil.java
│ ReflectionUtil.java
│ StringBuilderUtil.java
│ StringUtil.java
│ TableUtil.java
│
└─resources
小结
本文主要介绍了基本的依赖,和项目整体结构。
后续我们将用几节的文章,介绍一下如何实现一个简单版本的 hibernate