Hibernate基本使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Hibernate基本使用

环境准备

JDK:1.8

Idea:2020

Hibernate:5.3.1

Lombok: 1.18.12

尽量保持一致

下载框架

链接:http://hibernate.org/orm/

Hibernate目录

documentation

Hibernate开发的文档

lib

  • required:Hibernate开发的 必须 的依赖包
  • optional:Hibernate开发的 可选 的Jar包

project

Hibernate提供的参考项目

使用

创建一个项目

  • 可以Java项目中使用
  • 可以在Web项目中使用都可以

引入必须的Jar包

  • 数据库的驱动包
  • c3p0-0.9.2.1.jar
  • commons-beanutils-1.8.3.jar
  • junit-4.9.jar
  • mysql-connector-java-8.0.15.jar
  • Hibernate开发必须的Jar包,lib/required中所有的Jar包

建表

CREATE TABLE `customer` (
  `cust_id` BIGINT (32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
  `cust_name` VARCHAR (32) NOT NULL COMMENT '客户名称(公司名称)',
  `cust_source` VARCHAR (32) DEFAULT NULL COMMENT '客户信息来源',
  `cust_industry` VARCHAR (32) DEFAULT NULL COMMENT '客户所属行业',
  `cust_level` VARCHAR (32) DEFAULT NULL COMMENT '客户级别',
  `cust_phone` VARCHAR (64) DEFAULT NULL COMMENT '固定电话',
  `cust_mobile` VARCHAR (16) DEFAULT NULL COMMENT '移动电话',
  PRIMARY KEY (`cust_id`)
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;

创建ORM类

public class Customer {
    private Long cust_id;
    private String cust_name;
    private String cust_source;
    private String cust_industry;
    private String cust_level;
    private String cust_phone;
    private String cust_mobile;
}

创建Hibernate的核心配置文件

通常都叫 hibernate.cfg.xml,创建完毕后,也有一个约束要引入,在 org.hibernate 包当中可以找到对应的dtd configuration.dtd

属性名记不住,在目录提供的 project 当中有一个 etc,在 etc 当中 有一个 hibernate.properties 的文件打开,打开后,会看到连接各种数据库时需要的属性参数

需要配置方言,不同的数据库,使用的语言不一样,在 hibernate当中,sql语句会自动帮你生成,设置方言,就是设置自动生成的语言是哪个数据库当中的SQL

配置核心配置文件要加载哪一个映射,映射的路径就是上面创建的跟表相对应的配置文件,把全路径的点,要换成斜杠

<?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="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jonathan_yh?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8&amp;useSSL=false</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">1234</property>
        <!-- 配置Hibernate的方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 打印SQL -->
        <property name="hibernate.show_sql">true</property>
        <!-- 格式化SQL -->
        <property name="hibernate.format_sql">true</property>
        <!-- 自动创建表 -->
        <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping resource="customer.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

创建映射关系

通过XML的配置文件来进行配置,这个配置文件可以任意命名,类名.hbm.xml,别人一看,就能够知道是哪个类的映射文件,在xml当中引入dtd,在hibernate-core.jar包当中,在 org.hibernate包当中可以找到对应的dtd,打开 hibernate-mapping-3.0.dtd,把里面的约束复制一份,放到xml当中

建立类与表的映射

  1. 建立表与类的映射
  2. 建立主键的映射
  3. 建立普通属性的映射
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.javaboy.domain.Customer" table="customer">
        <!--建立类中的属性与表中的主键对应-->
        <id name="cust_id" column="cust_id">
            <generator class="native"/>
        </id>
        <!--建立类中的普通的属性和表的字段的对应-->
        <property name="cust_name" column="cust_name"/>
        <property name="cust_source" column="cust_source"/>
        <property name="cust_industry" column="cust_industry"/>
        <property name="cust_level" column="cust_level"/>
        <property name="cust_phone" column="cust_phone"/>
        <property name="cust_mobile" column="cust_mobile"/>
    </class>
</hibernate-mapping>

创建测试类

public class MyTest {
    @Test
    public void TestOne() {
        // 1.加载Hibernate的核心配置文件
        Configuration configuration = new Configuration().configure();
        // 2.创建一个SessionFactory对象:类似于JDBC中连接池
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        // 3.通过SessionFactory获取到Session对象:类似于JDBC中Connection
        Session session = sessionFactory.openSession();
        // 5.编写代码
        Customer customer = new Customer();
        customer.setCust_name("Jonathan_Yh");
        customer.setCust_level("18");
        session.save(customer);
        // 6.资源释放
        session.close();
        sessionFactory.close();
    }
}
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL Java 数据库连接
MyBatis 基本使用
创建一个普通的Maven项目,然后添加对应的Mybatis和MySQL的相关依赖
48 0
|
SQL XML Java
一篇文章让你马上入门Hibernate
一篇文章让你马上入门Hibernate
|
前端开发 对象存储 数据库管理
mybatis-plus基本使用
mybatis-plus基本使用
75 0
|
Java 数据库 Spring
JdbcTemplate的基本使用
JdbcTemplate的基本使用
JdbcTemplate的基本使用
|
SQL XML Java
SpringBoot + Mybatis系列教程之 CURD 基本使用姿势
mybatis 作为数据的 ORM 框架,在国内的应用市场还是非常可观的,当初刚开始工作时使用 spring + mybatis 进行开发,后来也使用过 hibernate, jdbctemplate, jooq,mybatisplus 等其他的一些框架, 就个人使用感触来讲 jooq 的使用姿势和写 sql 差不多,基本上可以会写 sql 的无需额外的培训,立马可以上手;
368 0
SpringBoot + Mybatis系列教程之 CURD 基本使用姿势
|
设计模式 开发框架 安全
一文带你了解Spring框架的基本使用
Spring作为企业Java最流行的应用程序开发框架,已经被数以百万计的世界各地的开发人员使用,Spring框架用来创建高性能,易于测试的,可重用的代码。是一个开源的Java平台,它最初...
235 0
|
Java 数据库连接 mybatis
mybatis教程1(基本使用)
mybatis教程1(基本使用)
mybatis教程1(基本使用)
|
SQL 存储 Java
Hibernate入门教程
Hibernate 随心所欲的使用面向对象思想操纵数据库. Table of contents 介绍 搭建开发环境 半sql半面向对象写法 完全的sql写法 完全的面向对象写法 Hibernate Hibernate是一个开放源代码的对象关系映...
1429 0
|
Java 数据库连接 mybatis
Mybatis的基本使用
Mybatis的基本使用 1.使用eclipse创建java工程,jdk使用1.7.0_72 2.导包:加入mybatis核心包、依赖包、数据驱动包。 3.日志:创建log4j.properties # Global logging configuration log4j.
1195 0