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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 《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();
  }
}
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
XML Java 数据库连接
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
159 0
《Hibernate上课笔记》----class4----Hibernate继承关系映射实现详解
|
XML Java 数据库连接
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
107 0
《Hibernate上课笔记》-----class5----Hibernate实现一对一关联映射
|
XML Java 数据库连接
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
126 0
《Hibernate上课笔记》------class6------Hibernate实现一对多关联映射
|
XML Java 数据库连接
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
156 0
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
257 0
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
|
Java 数据库连接 数据库
《Hibernate上课笔记》----class2----Hibernate的增删改查操作
《Hibernate上课笔记》----class2----Hibernate的增删改查操作
174 0
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class3----Hibernate的单实体映射
《Hibernate上课笔记》-----class3----Hibernate的单实体映射
230 0
|
Java 数据库连接 数据库
hibernate常见异常笔记(11)
hibernate常见异常笔记(11)
198 0
|
Java 数据库连接
hibernate常见异常笔记(10)
hibernate常见异常笔记(10)
146 0
|
Java 数据库连接
hibernate常见异常笔记(9)
hibernate常见异常笔记(9)
160 0