Hibernate的第一个程序

这篇博客介绍了Hibernate作为对象关系映射框架的基本概念,包括Configuration、SessionFactory、Session、Transaction和Criteria对象。作者详细解释了这些对象在Hibernate中的角色,并提供了一个简单的步骤,指导读者如何设置Hibernate开发环境,从配置文件、数据库表创建、实体类到映射文件的编写,最终创建并运行第一个Hibernate程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Hibernate是一个开源的对象关系映射框架,对JDBC进行非常轻量级的封装。它将POJO与数据表建立了映射关系,是一个全自动的ORM框架。
   Hibernate可以自动生成SQL语句并且自动执行SQL,可以用面向对象思想来操纵数据库。


   在开始第一个hibernate小程序之前我们有必要熟悉一下hibernate的五大对象。
Configuration: Configuration 类负责管理 Hibernate 的配置信息
SessionFactory:
1)针对单个数据库映射关系经过编译后的内存镜像,是线程安全的。
2)SessionFactory 对象一旦构造完毕,即被赋予特定的配置信息
3)SessionFactory是生成Session的工厂
4)构造 SessionFactory 很消耗资源,一般情况下一个应用中只初始化一个 SessionFactory 对象。
5)Hibernate4 新增了一个 ServiceRegistry 接口,所有基于 Hibernate 的配置或者服务都必须统一向这个 ServiceRegistry 注册后才能生效
Session:
1)Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心,所有持久化对象必须在 session 的管理下才可以进行持久化操作。此对象的生命周期很短。Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session 对象处。相当于 JDBC 中的 Connection。
2)持久化类与 Session 关联起来后就具有了持久化的能力。
Transaction:
允许应用程序定义工作单位,同时保持底层事务实现的抽象。
Criteria:
criteria是通过组合criteria对象检索实体的一个简化的接口,session是一个标准的工厂Criteria实例通常是通过工厂的方法来限制。


   上面对hibernate和其常用对象做了一个简单的介绍,下面就开始我们的第一个小程序吧。
一、hibernate开发环境准备
1、新建一个web工程,将…….\hibernate-release-4.2.4.Final\lib\required下面的所有jar包导入到web工程lib目录下。
这里写图片描述
2、加入数据库驱动包,我这里用的数据库是mysql驱动包是:
mysql-connector-java-5.1.7-bin.jar
二、开始编写第一个hibernate程序
1、新建hibernate.cfg.xml文件并编写其基本信息(主要是配置sessionFactory,相当于connection,起到链接数据库的作用)
这里写图片描述
2、在mysql数据库客户端新建一个数据表
这里写图片描述
3、编写一个实体类,该实体类属性与数据表中的字段名或者别名相映射
这里写图片描述
4、新建实体类的数据库映射文件XXXX.hbm.xml
这里写图片描述
5、将实体类的数据库映射文件引入到hibernate配置文件中
这里写图片描述
6、新建一个测试类,如下

package com.wxf.hibernate.test;
import java.util.UUID;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
import com.wxf.hibernate.entity.Student;
public class HelloworldTest {
    @Test
    public void test() {
        //1.创建一个SessiionFactory对象
                SessionFactory sessionFactory=null;
                //1).创建Configuration对象:对应hibernate的基本信息和对象关系映射信息
                  Configuration configuration=new Configuration().configure();
                //2).创建一个ServiceRegistry对象:hibernate的任何配置和服务都需要在该对象中注册后才能有效
                  ServiceRegistry serviceRegistry=
                          new ServiceRegistryBuilder().applySettings(configuration.getProperties())
                                                      .buildServiceRegistry();
                 //3).基于以上几个对象创建SessionFactory对象
                sessionFactory=configuration.buildSessionFactory(serviceRegistry);

                //2.创建一个Session对象
                Session session=sessionFactory.openSession();
                //3.开启事务
                Transaction transaction=session.beginTransaction();
                //4.执行操作
                Student student=new Student(UUID.randomUUID().toString(),"wangxiaofei",22,"male","13190241");
                session.save(student);

                //5.提交事务
                transaction.commit();
                //6.关闭Session对象
                session.close();
                //7.关闭SessionFactory对象
                sessionFactory.close();
    }
}

运行结果如下:
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值