Hibernate-常用API简列

本文介绍了Hibernate的主要API,包括Configuration、SessionFactory、Session、Transaction的常用方法。详细讲解了如何配置SessionFactory,创建和管理Session,以及执行各种类型的查询,如HQL、Criteria和本地SQL。此外,还涵盖了事务管理和常用的操作,如保存、更新、删除对象。

Hibernate-API

Configuration

该类是配置管理类。顾名思义是用它来管理配置。

method ###、

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

SessionFactory

session的工厂(或者说它代表了这个hibernate.cfg.xml配置文件)

method

1) sf.openSession(); 创建一个sesison对象

2) sf.getCurrentSession();
若Session没有创建,则创建Session,并将session绑定到当前线程上,线程结束,session会自动关闭。
若当前线程已经绑定session,则直接获取

Session

session对象维护了一个连接(Connection), 代表了与数据库连接的会话。
它是Hibernate最重要的对象,只用使用hibernate与数据库操作,都用到这个对象

method

1)session.beginTransaction();
开启一个事务; hibernate要求所有的与数据库的操作必须有事务的环境,否则报错!

有关更新的方法:
2) session.save(obj);
保存一个对象
3) session.update(emp);
更新一个对象(更新是必须已经设置了主键)
4) session.saveOrUpdate(emp);
保存或者更新: 没有设置主键,执行保存;
有设置主键,执行更新操作;
如果设置主键不存在报错!

主键查询相关的方法:
5)session.get(Employee.class, 1);
主键查询
6)session.load(Employee.class, 1); 主
键查询 (支持懒加载)
7)delete(Object object)
删除一个对象
。。。。方法太多,这里只列举一下一些常用的

HQL查询

查看 Hibernate-HQL查询 文档。

Criteria查询

应用并不是很广泛,我只做了简单了解。
这种查询是完全面向对象的查询

    @Test
    public void criteria() {

        Session session = sf.openSession();
        session.beginTransaction();

        Criteria criteria = session.createCriteria(Employee.class);
        // 构建条件
        criteria.add(Restrictions.eq("empId", 12));
        criteria.add(Restrictions.idEq(12));  // 主键查询

        System.out.println(criteria.list());

        session.getTransaction().commit();
        session.close();
    }    
本地SQL查询
复杂的查询,就要使用原生态的sql查询,也可以,就是本地sql查询的支持!
(缺点: 不能跨数据库平台!)
    @Test
    public void sql() {

        Session session = sf.openSession();
        session.beginTransaction();

        SQLQuery q = session.createSQLQuery("SELECT * FROM t_Dept limit 5;").addEntity(Dept.class);  // 也可以自动封装
        System.out.println(q.list());

        session.getTransaction().commit();
        session.close();
    }

Query

代表查询。。。。。。

1) list()
将查询结果,以list形式列出
2)uniqueResult()
返回一个唯一的实例。
2) 还有一些设置查询参数的方法
比如 setSting(),setBinary()什么的

Transaction

就那些与事务相关的的方法。。。。。
begin()
commit()
rollback()

isActive() Is this transaction still active?
。。。。。。。

写到这里,我发现是列举不详细的,只能列举常用的,想看还是去看文档!!!!!!所以不写了。。。。。。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值