美文网首页
Hibernate初探

Hibernate初探

作者: BlueSkyBlue | 来源:发表于2020-03-21 19:17 被阅读0次

什么是Hibernate

Hibernate实际上是一个框架。

框架实际上是一个半成品。我们在这个基础上开发可以减少代码量,提高程序的健壮性。

Hibernate是一个Java领域的持久化框架。持久化是将对象和数据持久化的保存到数据库中。同数据库相关的各种操作都可以称作持久化。
加载:根据特定的OID,把一个对象从数据库加载到内存中。

Hibernate是一个ORM框架。

ORM

ORM(Object-Relation Mapping):对象/关系映射

面向对象概念 面向关系概念
对象 表的行(记录)
属性 表的列(字段)

ORM思想:将关系数据库中表的记录映射成对象。以对象的形式展现,程序员可以把对数据库的操作转换为对对象的操作。

ORM采用元数据来描述对象-关系映射的细节。元数据通常采用XML格式,并且专门存放在对象-关系映射文件中。


ORM底层使用的还是JDBC,可以说ORM框架是对JDBC的封装。
目前流行的ORM框架有Hibernate和MyBatis。

Hello World

Hibernate应用开发步骤

配置连接数据库的基本信息

需要创建hibernate.cfg.xml文件,并添加如下内容。

<hibernate-configuration>
    <session-factory>
        <property name="connection.username">postgres</property>
        <property name="connection.password">973412postgresql</property>
        <property name="connection.driver_class">org.postgresql.Driver</property>
        <property name="connection.url">jdbc:postgresql://localhost:5432/hibernate</property>

        <property name="dialect">org.hibernate.dialect.PostgreSQL10Dialect</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

创建持久化对象

创建一个HelloWorld类

public class HelloWorld {
    private Integer id;
    private String title;
    private String author;
    private Date date;

    public HelloWorld() {

    }

    public HelloWorld(Integer id, String title, String author, Date date) {
        this.id = id;
        this.title = title;
        this.author = author;
        this.date = date;
    }

    //Getter and Setter.

    @Override
    public String toString() {
        return "HelloWorld{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", author='" + author + '\'' +
                ", date=" + date +
                '}';
    }
}

创建对象关系映射文件

<hibernate-mapping>
    <class name="com.hibernate.helloworld.HelloWorld" table="helloworld" schema="public" catalog="hibernate">
        <id name="id">
            <column name="id" sql-type="integer"/>
        </id>
        <property name="title">
            <column name="title" sql-type="text" not-null="true"/>
        </property>
        <property name="author">
            <column name="author" sql-type="text" not-null="true"/>
        </property>
        <property name="date">
            <column name="date" sql-type="date" not-null="true"/>
        </property>
    </class>
</hibernate-mapping>

在hibernate.cfg.xml中添加映射关系

<mapping resource="com/hibernate/helloworld/HelloworldEntity.hbm.xml"/>
<mapping class="com.hibernate.helloworld.HelloWorld"/>

通过Hibernate API编写访问数据库的代码

public class HibernateTest {

    @Test
    public void test(){
        //1. Create SessionFactory object.
        SessionFactory sessionFactory = null;
        //1.1 Create configuration object.
        Configuration configuration = new Configuration().configure();
        sessionFactory = configuration.buildSessionFactory();
        //2. Create Session Object.
        Session session = sessionFactory.openSession();
        //3. Start transaction.
        Transaction transaction = session.beginTransaction();
        //4. Save
        HelloWorld  helloworld = new HelloWorld(1, "Java", "Hibernate", new Date(new Date().getTime()));
        session.save(helloworld);
        //5. Submit transaction.
        transaction.commit();
        //6. Close Session.
        session.close();
        //7. Close SessionFactory.
        sessionFactory.close();
    }
}

相关文章

  • hibernate 深入理解

    在之前的文章【ORM规范】初探JPA与Hibernate 中我们初步了解了Hibernate,ORM以及JPA的概...

  • hibernate初探

    说实话hibernate配置与使用随便百度一下都很多,但对于新手来说还是存在很多问题,我就是那个在网上复制代码然后...

  • Hibernate初探

    什么是Hibernate Hibernate实际上是一个框架。 框架实际上是一个半成品。我们在这个基础上开发可以减...

  • Hibernate(一) 初探

    最近重新学习了一遍Hibernate框架,感觉收益颇多,再次做个学习总结和笔记。本篇文章主要记录和总结 Hiber...

  • Hibernate构架(一) 初探

    ORM,Object Relation Mapping,即对象关系映射。Hibernate就是ORM的实现,使对象...

  • Hibernate初探之单表映射

    什么是ORM ORM(Object/Relationship Mapping):对象/关系映射 为什么需要ORM ...

  • Hibernate初探之多对多映射

    多对多映射 在平常的工作中,一个员工可能负责多个项目,同时一个项目会由多个员工协同完成。这就是多对多的模型。 所以...

  • 【ORM规范】初探JPA与Hibernate

    1 JPA 1.1 JPA是什么 JPA全称Java Persistence API,是一组用于将数据存入数据库的...

  • Hibernate初探之单表映射

    ORM(Object/Relationship Mapping):对象 / 关系映射 利用面向对象映射编写的数据库...

  • 【Java中级】5.0 SSH之Hibernate框架(一)——

    1.0 Hibernate框架学习路线 Hibernate入门包括Hibernate的环境搭建、Hibernate...

网友评论

      本文标题:Hibernate初探

      本文链接:https://www.haomeiwen.com/subject/gxluyhtx.html