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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 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
相关文章
|
XML Java 数据库连接
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
76 0
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
|
XML Java 数据库连接
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
54 0
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
|
XML Java 数据库连接
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
49 0
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
|
XML Java 数据库连接
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
74 0
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
89 0
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
|
Java 数据库连接 数据库
《Hibernate上课笔记》----class2----Hibernate的增删改查操作
《Hibernate上课笔记》----class2----Hibernate的增删改查操作
86 0
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class3----Hibernate的单实体映射
《Hibernate上课笔记》-----class3----Hibernate的单实体映射
102 0
|
Java 数据库连接 数据库
hibernate常见异常笔记(11)
hibernate常见异常笔记(11)
139 0
|
Java 数据库连接
hibernate常见异常笔记(10)
hibernate常见异常笔记(10)
90 0
|
Java 数据库连接
hibernate常见异常笔记(9)
hibernate常见异常笔记(9)
103 0