《Hibernate上课笔记》---class1---Hibernate简介

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 《Hibernate上课笔记》---class1---Hibernate简介

一:Hibernate简介

1.Hibernate是什么

在分层体系结构中Hibernate位于持久层,是完成对象持久层框架;

Hibernate是连接Java应用程序和关系型数据库的框架,能够建立对象和关系数据模型之间的映射,是一种自动化的ORM框架;

Hibernate是对JDBCAPI的封装,是JDBC轻量级封装框架。

那么什么是ORM呢?

ORM全称Object Relational Mapping ,翻译过来就是对象-关系映射,是随着面向对象的软件开发方法发展而产生的。用来把域模型表示的对象映射到关系数据模型对应的数据库结构中去。简单来说就是把一个类转换成一个表。


2.使用Hibernate的优点


Hibernate实现了ORM,使Java程序员可以方便的运用面向对象的编程思想来操纵关系型数据库;

Hibernate是对JDBC的封装,增强了代码的重用性,简化了代码,提高了编程效率;

Hibernate是对JDBC的轻量级封装,必要时Java程序员可以绕过Hibernate直接访问JDBC API;

Hibernate不仅可以应用在独立的Java程序中,还可以应用在Java Web项目中,可以和多种Web服务器集成,并支持多种数据库平台。

3.必须要记住这个名字:

Hibernate作者:Gavin King


二:第一个Hibernate程序


程序环境:Eclipse+Mysql5.3+hibenate5.2

所需Java包:


2021030319271926.png


1.Hibernate配置文件

默认文件名: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.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.connection.password"></property>
  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.format_sql">true</property>
  <mapping resource="com/hibernate/entity/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>

2.创建持久化类

public class Customer {
  private Integer id;
  private String name;
  private int age;
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}

3.创建持久化类的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hibernate.entity">
    <class name="Customer" table="CUSTOMER">
        <id name="id" type="int" >
           <column name="id"></column>
           <generator class="native"></generator>
        </id>
        <property name="name" type="java.lang.String">
        </property>
        <property name="age"/>   
    </class>
</hibernate-mapping>

4.编写HibernateUtil工具类

public class HibernateUtil {
      private static SessionFactory factory;
      private  static StandardServiceRegistry registry;
     //得到sessionFactory
      static {
        try {
          //1.获取注册的register
            registry=new StandardServiceRegistryBuilder().configure().build();
             //2.得到factory
           factory =new MetadataSources(registry).buildMetadata().buildSessionFactory();
        }catch(Exception e) {
          e.printStackTrace();
          StandardServiceRegistryBuilder.destroy(registry);         
        }
      }
      //获得session对象
      public static Session openSession() {
        return factory.openSession();
      }
      //关闭sessionFactory
      public static void closeFactory() {
        factory.close();
      }
}

5.测试类,保存一个对象

public class Test {
    public static void main(String[] args) {
    //1.获取session对象
      Session session =HibernateUtil.openSession();
      //2.得到用户对象
      Customer customer =new Customer();
      customer.setName("liuliu");
      customer.setAge(15);
      //3.进行保存
      Transaction transaction=session.beginTransaction();
      session.save(customer);
      transaction.commit();
      //4.关闭session对象
      session.close();
      //5.关闭sessionFactory
      HibernateUtil.closeFactory();
  }
}
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Java 数据库连接 Apache
|
XML Java 数据库连接
Hibernate JPA简介
Hibernate除了是一个ORM框架之外,同时还实现了Java EE的一项标准JPA。我们在前面已经看到了Hibernate可以在注解方面直接使用JPA。
970 0
|
SQL Java 关系型数据库
Hibernate查询简介
创建实体类 在介绍Hibernate查询语言之前,首先我们来建立一下数据库。这里直接使用了MySQL自带的样例数据库world。如果你没有安装MySQL那么需要安装一下,并且在安装的时候选择安装样例数据库。
893 0
|
Java 数据库连接 Spring
Hibernate Validator简介
Hibernate项目中不仅有ORM一个框架,这里介绍的是它的另一个框架Validator,用来验证实体类是否满足需求。Validator实现了Java的一项标准Bean Validation。
1026 0
Hibernate-HQL Query接口简介
Query接口简介: 1.org.hibernate.Query接口定义有执行查询的方法(该接口解析HQL语句,然后根据配置信息生成SQL语句); 2.Query接口支持方法链编程风格,使得程序代码更为简洁(方法链编程:调用方法后,返回的结果依然是调用这个方法的对象,可以调用该对象的其他方法) 3.
|
Oracle Java 关系型数据库
简单的Hibernate入门简介
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。
965 0
|
安全 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。
782 0
|
17天前
|
SQL Java 数据库连接
jpa、hibernate、spring-data-jpa、jdbcTemplate
jpa、hibernate、spring-data-jpa、jdbcTemplate