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

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



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
XML Oracle 搜索推荐
Hibernate开发环境的简单搭建及常见错误(一)下
Hibernate开发环境的简单搭建及常见错误(一)
184 0
Hibernate开发环境的简单搭建及常见错误(一)下
|
6月前
|
SQL 缓存 Java
框架分析(9)-Hibernate
框架分析(9)-Hibernate
|
16天前
|
缓存 Java 数据库连接
Hibernate:Java持久层框架的高效应用
通过上述步骤,可以在Java项目中高效应用Hibernate框架,实现对关系数据库的透明持久化管理。Hibernate提供的强大功能和灵活配置,使得开发者能够专注于业务逻辑的实现,而不必过多关注底层数据库操作。
10 1
|
3月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
46 1
|
3月前
|
数据库 Java 数据库连接
Struts 2 与 Hibernate 的完美邂逅:如何无缝集成两大框架,轻松玩转高效 CRUD 操作?
【8月更文挑战第31天】本文通过具体示例介绍了如何在 Struts 2 中整合 Hibernate,实现基本的 CRUD 操作。首先创建 Maven 项目并添加相关依赖,接着配置 Hibernate 并定义实体类及其映射文件。然后创建 DAO 接口及实现类处理数据库操作,再通过 Struts 2 的 Action 类处理用户请求。最后配置 `struts.xml` 文件并创建 JSP 页面展示用户列表及编辑表单。此示例展示了如何配置和使用这两个框架,使代码更加模块化和可维护。
81 0
|
4月前
|
SQL Java 数据库连接
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
75 0
|
5月前
|
Java 数据库连接 数据库
探索JPA生态:Hibernate与其他ORM框架的对比分析
【6月更文挑战第25天】**JPA标准下的Hibernate是流行的ORM实现,提供丰富功能如二级缓存和延迟加载,但其学习曲线较陡,性能优化复杂。相比如MyBatis,Hibernate的JPQL更面向对象,MyBatis则接近SQL。选择ORM需考虑项目需求和个人偏好。**
84 0
|
5月前
|
Java 数据库连接
杨老师课堂之JavaEE三大框架Hibernate入门第一课
杨老师课堂之JavaEE三大框架Hibernate入门第一课
30 0
|
6月前
|
SQL Java 数据库连接
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
Java从入门到精通:3.1.2深入学习Java EE技术——Hibernate与MyBatis等ORM框架的掌握
|
6月前
|
SQL Java 关系型数据库
数据库访问:什么是Hibernate框架?
【4月更文挑战第15天】Hibernate是开源ORM框架,将Java对象与数据库表映射,简化对象-关系映射,提升开发效率和性能。它自动化处理数据操作,支持多种数据库,自动生成SQL,提供配置选项和高级特性,减少手动SQL编写,便于切换数据库。
71 2