Hibernate开发环境的简单搭建及常见错误(一)上

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Hibernate开发环境的简单搭建及常见错误(一)

一 Hibernate简单介绍


一.一 Hibernate框架的作用


Hibernate是数据库层框架,做持久化操作。 以前所讲的Struts2是Web层框架。


Hibernate 是全自动的ORM框架,可以代替我们自动生成SQL语句,完成基本的CRUD操作。


想一想,我们在SE阶段 自己写 JDBC,是不是很麻烦啊. Hibernate 就是帮我们简化 JDBC操作的。


一.二 Hibernate的下载地址


官方下载地址是: http://hibernate.org/orm/releases/5.2/


下载完成后的目录结构是:


20200615094111636.png


其中documentataion表示的是开发文档,在里面有一个javadocs/index.html 文件,这是文档首页,点击进去之后,可以方便的查看Hibernate官方给出的API.


lib文件夹,存储的是关于Hibernate开发中,经常用到的Jar包。


有一个required文件夹,表示必须的。开发中,将required文件夹下的所有Jar包全部复制到项目工程中去。 一共是10个。


202006150941421.png


与C3P0整合的Jar包在\lib\optional\c3p0文件夹下。(C3P0连接池)


与EhCache整合的Jar包在\lib\optional\ehcache文件夹下。(Cache缓存)


Project文件夹为Hibernate所给的一些事例,具体为相关Jar包的源代码。


里面有一个etc文件夹,下面为一些常用的配置文件


20200615094159674.png


一.三 ORM 对象关系映射


ORM,指得是Object Relation Mapping 对象关系映射。 简单的来说,就是将以前对具体数据表的操作转换成对相应的实体的操作。


如对数据表User进行相应的CRUD操作,转换成对User类JavaBean的相应的操作。


相应的映射规则:


将表------>映射成实体


将视图------->映射成实体。


将表中字段------->映射成实体的属性


将表与表之间的外键关系,一对多,多对多,一对一关系映射成实体类之间的一对多,多对多,一对一关系。


二. 开发环境的具体搭建


二.一 创建项目所对应的数据库


Hibernate只会自动创建表,不能创建数据库。所以数据库必须要自己手动创建。 利用Navicat For MySQL工具创建一个数据库,取名称为hibernate。 采用utf-8编码方式。


20200615094211402.png


二.二 导入相应的Jar包(新建普通的Java项目即可)


不要忘记导入MySQL 数据库的jar包。


20200615094222336.png


二.三 创建相应的实体类


如User 员工类


在pojo包下,创建User.java


package com.yjl.pojo;
import java.io.Serializable;
/**
 @author: 两个蝴蝶飞
 @date: 2018年9月29日 下午7:53:39
 @Description Hibernate操作时相应的实体类,实现序列化
*/
public class User implements Serializable{
  private static final long serialVersionUID = 1L;
  /**
   * @param 主键id 用Integer包装类
   * @param userName 用户名
   * @param password 密码
   * @param sex 性别
   * @param age 年龄
   * @param description 相关描述
   */
  private Integer id;
  private String userName;
  private String password;
  private String sex;
  private Integer age;
  private String description;
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getUserName() {
    return userName;
  }
  public void setUserName(String userName) {
    this.userName = userName;
  }
  public String getPassword() {
    return password;
  }
  public void setPassword(String password) {
    this.password = password;
  }
  public String getSex() {
    return sex;
  }
  public void setSex(String sex) {
    this.sex = sex;
  }
  public Integer getAge() {
    return age;
  }
  public void setAge(Integer age) {
    this.age = age;
  }
  public String getDescription() {
    return description;
  }
  public void setDescription(String description) {
    this.description = description;
  }
}


二.四 创建User.hbm.xml文件


在与实体类User同级的目录下,即也在pojo包下,创建一个配置文件.xml, 取名称为实体类.hbm.xml。


20200615094237456.png


创建User.hbm.xml文件:


<?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 package="com.yjl.pojo">
  <!-- 具体的实体类 -->
  <class name="User" table="user">
    <!-- 主键 -->
    <id name="id" column="id">
                    <generator class="native"></generator>
                </id>
    <!-- 其余属性 -->
    <property name="userName"></property>
    <property name="password"></property>
    <property name="sex" ></property>
    <property name="age"></property>
    <property name="description"></property>
  </class>
</hibernate-mapping>


二.五 创建Hibernate框架 全局配置文件 hibernate.cfg.xml


这个文件是Hibernate官方定义的文件,不能改名称.(与Spring整合后可以改,但也不建议改),且必须要放在src目录下,即源文件目录下。


其中cfg指的是 config的缩写。


20200615094249104.png


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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=utf8</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">abc123</property>
    <!-- 关于Hibernate的相应配置 -->
    <!-- 引入方言 -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name="hibernate.format_sql">true</property>
    <!-- 引入相应的约束文件  ctrl点击时可以正确进入-->
    <mapping resource="com/yjl/pojo/User.hbm.xml"/>
  </session-factory>
</hibernate-configuration>



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
XML Oracle 搜索推荐
Hibernate开发环境的简单搭建及常见错误(一)下
Hibernate开发环境的简单搭建及常见错误(一)
153 0
Hibernate开发环境的简单搭建及常见错误(一)下
|
安全 Java 应用服务中间件
Java 近期新闻:Hibernate 6.0、JobRunr 5.0、JHipster 7.8.0、Spring CVEs、JReleaser 1.0-RC2
本期 Java 近期新闻综述内容涉及 JDK 19、Spring Boot、Spring CVEs、Apache Tomcat 点版本、Quarkus Tools for Visual Studio Code、Micronaut 3.4.1、JetBrains 加入 Micronaut 基金会、Open Liberty Paketo Liberty Buildpack、Hibernate 6.0、JobRunr 5.0、WildFly 26.1 Beta S2I 镜像、JReleaser 1.0-RC2、MicroStream 7.0-M2、JHipster 7.8.0、JMH 1.35。
780 0
|
14天前
|
SQL Java 数据库连接
jpa、hibernate、spring-data-jpa、jdbcTemplate
jpa、hibernate、spring-data-jpa、jdbcTemplate
|
4月前
|
存储 Java 数据库连接
Spring Boot 嵌入式服务器、Hibernate 关系和 Spring Data 全解析
Spring Boot 的嵌入式服务器功能是一项方便而强大的功能,它允许你在应用程序中直接运行 Web 服务器,无需将其部署到单独的独立 Web 服务器中。这使得开发、测试和部署 Web 应用程序变得容易,而且它还是轻量级的、易于启动和停止的,易于配置。
65 0
|
4月前
|
XML Java 数据库连接
Hibernate与Spring整合实践实例
Hibernate与Spring整合实践实例
40 0
|
7月前
|
存储 Oracle Java
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
|
9月前
|
Java 数据库连接 数据库
JAVA三大框架Struts、hibernate和spring的各自作用是什么?
JAVA三大框架Struts、hibernate和spring的各自作用是什么?
48 0
|
XML Java 关系型数据库
Spring 项目快速整合 Hibernate
前言 Hibernate 作为前些年广为流行的 ORM 框架,Spring 在诞生之初也进行了支持,并且抽象出一个 spring-orm 模块。
426 0
|
JavaScript Java 数据库连接
spring对hibernate的集成中的回调(CallBack)机制
spring对hibernate的集成中的回调(CallBack)机制
165 0
spring对hibernate的集成中的回调(CallBack)机制
|
Java 数据库连接 API
Spring整合Hibernate JPA
Spring整合Hibernate JPA
79 0