手写 Hibernate ORM 框架-00-环境准备

导航

手写 Hibernate ORM 框架-00-环境准备

手写 Hibernate ORM 框架-01-注解定义、常量定义

手写 Hibernate ORM 框架-02-实体 Bean 定义,建表语句自动生成

手写 Hibernate ORM 框架-03-Hibernate 配置文件读取, 数据库连接构建

手写 Hibernate ORM 框架-04-数据库交互,数据持久化

目录

  • 导航
  • 目录
  • 前言
    • 代码地址
  • 环境准备
  • pom.xml
    • 内容
    • jar 包功能说明
  • 整体目录结构
  • 目录导航

前言

Hibernate 相信接触过 java 的人都不会陌生。

今天我们一起写一个简化版的 Hibernate,用于加深对此 ORM 工具的理解。

代码地址

hibernate-simulator

环境准备

  • maven

本项目使用 maven 管理 jar 包

  • jdk

jdk 为 1.8

pom.xml

内容

pom 文件如下:


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.github.houbbgroupId>
    <artifactId>hibernate-simulatorartifactId>
    <version>1.0.1-SNAPSHOTversion>
    <packaging>jarpackaging>

    <description>模拟 Hibernatedescription>

    <properties>
        
        <plugin.compiler.version>3.2plugin.compiler.version>
        <plugin.compiler.version>3.2plugin.compiler.version>
        <plugin.surefire.version>2.18.1plugin.surefire.version>
        <plugin.surefire.skip-it>trueplugin.surefire.skip-it>
        <plugin.surefire.ignore-failure>trueplugin.surefire.ignore-failure>
        

        
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.compiler.level>1.8project.compiler.level>

        <mysql.version>5.1.34mysql.version>
        <dom4j.version>1.6.1dom4j.version>
    properties>

    <dependencies>

        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>${mysql.version}version>
        dependency>

        
        <dependency>
            <groupId>dom4jgroupId>
            <artifactId>dom4jartifactId>
            <version>${dom4j.version}version>
        dependency>

        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>testscope>
        dependency>

    dependencies>

    <build>
        <finalName>${project.name}finalName>

        <pluginManagement>
            
            <plugins>

                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-compiler-pluginartifactId>
                    <version>${plugin.compiler.version}version>
                    <configuration>
                        <source>${project.compiler.level}source>
                        <target>${project.compiler.level}target>
                        <encoding>${project.build.sourceEncoding}encoding>
                    configuration>
                plugin>

                <plugin>
                    <groupId>org.apache.maven.pluginsgroupId>
                    <artifactId>maven-surefire-pluginartifactId>
                    <version>${plugin.surefire.version}version>
                    <configuration>
                        <skipTests>trueskipTests>
                        <testFailureIgnore>truetestFailureIgnore>
                    configuration>
                plugin>

            plugins>
        pluginManagement>

        
        <plugins>

            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
            plugin>

            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-surefire-pluginartifactId>
            plugin>

        plugins>
    build>

project>

jar 包功能说明

名称 作用 备注
mysql-connector-java 用于连接 mysql 数据库 本项目以 mysql 为例子
dom4j 用于模拟读取 hibernate.cfg.xml
junit 用于单元测试

整体目录结构

便于鸟瞰整个项目

.
├── main
│   ├── java
│   │   └── com
│   │       └── ryo
│   │           └── hibernate
│   │               └── simulator
│   │                   ├── hibernate
│   │                   │   ├── Session.java
│   │                   │   ├── Table.java
│   │                   │   ├── annotations
│   │                   │   │   ├── Column.java
│   │                   │   │   ├── Entity.java
│   │                   │   │   ├── GenerateValue.java
│   │                   │   │   └── Id.java
│   │                   │   ├── constants
│   │                   │   │   ├── HibernateConstant.java
│   │                   │   │   └── TypeMap.java
│   │                   │   └── util
│   │                   │       ├── ConnectionUtil.java
│   │                   │       ├── FieldUtil.java
│   │                   │       └── TableUtil.java
│   │                   ├── model
│   │                   │   └── User.java
│   │                   └── util
│   │                       ├── CollectionUtil.java
│   │                       ├── ReflectionUtil.java
│   │                       ├── StringBuilderUtil.java
│   │                       └── StringUtil.java
│   └── resources
│       └── hibernate.cfg.xml

目录导航

目录导航

你可能感兴趣的:(Java,orm,动手写框架)