SSH框架之Hibernate的API详解

本文详细介绍Hibernate API的基本使用方法,包括Configuration配置管理类对象、SessionFactory、Session及Transaction等核心组件的功能和常见操作。此外,还提供了关于异常处理和事务管理的实用建议。

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

Hibernate的Api
一、Configuration 配置管理类对象
1、config.configure(); 加载主配置文件的方法(hibernate.cfg.xml)
默认加载src/hibernate.cfg.xml
2、config.configure(“cn/config/hibernate.cfg.xml”); 加载指定路径下指定名称的主配置文件
3、config.buildSessionFactory(); 创建session的工厂对象

package sram.hello;
import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class App2 {
    private static SessionFactory sf;

    static{
        /*
        //1.创建配置管理类对象
        Configuration config = new Configuration();
        //  加载配置文件(默认加载src/hibernate.cfg.xml)
        config.configure();

        //2.根据加载的配置管理类对象,创建SessionFactory对象
        sf = config.buildSessionFactory();
        */

        //创建sf对象
        sf = new Configuration().configure().buildSessionFactory();
    }

二、SessionFactory:session的工厂(或者说代表了这个hibernate.cfg.xml配置文件)
1、sf.openSession(); 创建一个sesison对象
2、sf.getCurrentSession(); 创建session或取出session对象

三、Session:session对象维护了一个连接(Connection), 代表了与数据库连接的会话。
Session是Hibernate最重要的对象:只要使用hibernate与数据库操作,都用到这个对象。
1、session.beginTransaction(); 开启一个事务; hibernate要求所有的与数据库的操作必须有事务的环境,否则报错!

2、更新:
1)session.save(obj); 保存一个对象

2)session.update(emp); 更新一个对象

3)session.saveOrUpdate(emp); 保存或者更新的方法:
a)没有设置主键,执行保存;

b)设置主键,执行更新操作;但是注意:如果设置主键不存在报错!

3、主键查询:
1)session.get(Employee.class, 1); 主键查询
2)session.load(Employee.class, 1); 主键查询 (支持懒加载)

四、Transaction hibernate事务对象

五、问题:
1、ClassNotFoundException….异常的原因
答:缺少jar文件!

2、如果程序执行了,hibernate也生成了sql语句,但数据没有结果影响。
答:一般是事务忘记提交或者根本就未开启事务等…….
查询可以不提交事务,因为查询只是只读事务,没有修改操作。

六、处理问题:
遇到问题,一定要学会看错误提示!
错误信息从下往上看,从一个cause by看起,如果没有那就只能看第一行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值