搭建Hibernate开发环境

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 前面已经介绍了Hibernate的一点知识,现在我们来一步一步开发Hibernate程序来学习。在这里我使用IDEA作为开发工具,Gradle作为项目构建工具。

前面已经介绍了Hibernate的一点知识,现在我们来一步一步开发Hibernate程序来学习。在这里我使用IDEA作为开发工具,Gradle作为项目构建工具。当然在实际中不一定必须使用这两个工具,我们可以选择自己习惯使用的工具。只要正确的添加了Hibernate相关类以及数据库驱动,我们就能正确的运行Hibernate程序了。

新建项目

使用IDEA新建一个Gradle项目,新建之后,在build.gradle文件中添加如下内容:

group 'yitian.learning'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'war'
apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'
apply plugin: 'eclipse'
apply plugin: 'idea'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
    // compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.40'

    compile group: 'org.hibernate', name: 'hibernate-core', version: '5.2.5.Final'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

在Gradle解决项目依赖之后,我们就可以开始搭建Hibernate开发环境了。

SessionFactory

SessionFactory是Hibernate最重要的一个类,也是我们配置和使用Hibernate的第一步。它类似于我们学习JDBC时候的数据库连接,SessionFactory会为我们管理做好所有事情。一般情况下一个项目只需要一个SessionFactory就可以了。我们需要做的,就是编写它的配置文件hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>

    <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/htest?useSSL=false</property>
        <property name="connection.username">root</property>
        <property name="connection.password">12345678</property>

        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="hbm2ddl.auto">create</property>

    </session-factory>

</hibernate-configuration>

以上就是Hibernate的配置文件,有JDBC开发经验的同学应该很熟悉前面几项内容吧。重点是后面这几项。

  • dialect 代表的是Hibernate使用的方言。Hibernate设计时候考虑到了多种数据库,所以这里需要指定我们使用的数据库。在这里我是用的就是MySQL数据库。
  • show_sql 代表的是在Hibernate会在运行的时候同时将所执行的SQL语句输出到控制台上,方便我们开发调试。
  • format_sql 代表将上面输出的SQL语句格式化,方便我们开发。
  • hbm2ddl.auto 代表的是数据库的生成策略。在这里使用create代表每次运行程序都重新创建数据库。这也是我们开发时常用的选项。

配置文件写好之后,我们就可以开始创建SessionFactory了。随着Hibernate的更新,SessionFactory的创建方式也发生了变化。以前我看视频教程的时候,我照着老师的创建方式创建SessionFactory的时候,Hibernate提示我老师讲的那种方式已经过时了。不过现在我直接看的Hibernate官方文档,所以下面这个方式应该是比较新的。

package yitian.data;

import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

public class HibernateUtil {
    private static SessionFactory sessionFactory;

    static {
        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                .configure()
                .build();
        try {
            sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
        } catch (Exception e) {
            StandardServiceRegistryBuilder.destroy(registry);
            throw new RuntimeException(e);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

这就是我的SessionFactory创建类,为了省事我直接写为了静态类,实际情况中一般使用Spring来管理Hibernate SessionFactory的生命周期。重点是静态初始化块中的代码,这就是Hibernate的初始化方式。StandardServiceRegistryBuilder类会搜索我们刚才写的hibernate.cfg.xml配置文件,所以为了保证正确的初始化SessionFactory,一般情况下需要将hibernate.cfg.xml放在CLASSPATH下。由于我用的是Gradle,所以配置文件要放在resources文件夹下。如果是普通的Java Web项目,就放在webapps/WEB-INF下。一开始我直接从Hibernate官方教程抄的代码,结果它直接在catch中吃掉了异常,导致我一天没搞明白错误在哪里。因此在这里我加上了抛出语句。

接下来测试一下SessionFactory是否配置成功。我在这里将单元测试写在src/test/java文件夹中,以便让Gradle自动运行这些测试。

package yitian.data;

import org.hibernate.SessionFactory;
import org.junit.*;

public class HibernateTest {
    private static SessionFactory factory;

    @BeforeClass
    public static void init() {
        factory = HibernateUtil.getSessionFactory();
    }

    @Test
    public void testHibernate() {
        Assert.assertNotNull(factory);
    }

    @AfterClass
    public static void clean() {
        factory.close();
    }
}

这个单元测试很简单,就是看一下SessionFactory是否为空。使用Gradle的话运行一下gradle test命令即可。如果没有使用Gradle的话也可以使用Eclipse或者IDEA提供的单元测试工具来测试。

测试完成之后,我们就可以开始以后的Hibernate学习了。单元测试结果和目前的项目结构如下:
img_484e41e80be13ee1a91496049e81a98f.png
项目结构
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
Java 数据库连接 数据库
MyBatis之旅:从零开始的环境搭建与配置
MyBatis之旅:从零开始的环境搭建与配置
34 1
|
5月前
|
缓存
mybatis-plus源码环境搭建及运行
mybatis-plus源码环境搭建及运行
53 0
|
7月前
|
Java 关系型数据库 MySQL
08activiti - 开发环境准备
08activiti - 开发环境准备
20 0
|
9月前
|
Java 关系型数据库 MySQL
搭建Mybatis框架环境
一、添加依赖 mybatis依赖 如果你使用的是 Maven等构建工具,你需要在项目的构建文件中添加对 MyBatis JAR 文件的依赖。 打开项目的 pom.xml 文件,在其中添加依赖的配置。 <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.13</version> </dependency> <!-- 其他依赖 --> </dependencies> mysql依赖 在MySQL的依赖是通过
78 0
|
Java 关系型数据库 MySQL
搭建项目环境(代码生成器) | 学习笔记
快速学习搭建项目环境(代码生成器)
98 0
|
监控 前端开发 druid
整合MyBatis(一):基础环境搭建|学习笔记
快速学习整合MyBatis(一):基础环境搭建
103 0
|
XML SQL Java
MyBatis(三) 完整环境搭建步骤
介绍Mybaties完整环境搭建步骤(图文结合, 文末附相关jar包)
MyBatis(三)  完整环境搭建步骤
|
SQL XML Java
【MyBatis框架点滴】——初识+环境搭建
  前段时间用几篇博客总结了一下Hibernate,下面再一起回顾总结一下另一套优秀的持久层框架——MyBatis。MyBatis的前身是iBatis,2010年改名为MyBatis~   同样是持久层框架,MyBatis和Hibernate有什么区别呢?做为初学者的我,不敢妄加评论,网上找了一些大牛的解释:
【MyBatis框架点滴】——初识+环境搭建
|
XML Oracle 搜索推荐
Hibernate开发环境的简单搭建及常见错误(一)下
Hibernate开发环境的简单搭建及常见错误(一)
153 0
Hibernate开发环境的简单搭建及常见错误(一)下
|
XML 存储 缓存
Hibernate开发环境的简单搭建及常见错误(一)上
Hibernate开发环境的简单搭建及常见错误(一)
130 0
Hibernate开发环境的简单搭建及常见错误(一)上