hibernate_核心API

1. 用于加载核心配置文件:Configuration
 configuration的主要作用是负责管理hibernate的配置信息。

<1>加载核心文件

//hibernate.peoperties 核心文件的加载方式
Configuration configuration = new Configuration();

//hibernate.cfg.xml 核心文件的加载方式
Configuration configuration = new Configuration().configure();

<2>加载映射文件

//第一种写法:使用addResource方法
configuration.addResource("cn/itcast/hibernate3/demo1/Customer.hbm.xml");

//第二种写法:(要求:映射文件名称要规范,类与映射在同一个包下)
configuration.addClass(Customer.class);

2. Session工厂:SessionFactory

Configuration对象根据当前的配置信息生成 SessionFactory对象
SessionFactory 对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句
SessionFactory 对象是线程安全的
SessionFactory还负责维护Hibernate的二级缓存

SessionFactory对象根据数据库信息,维护连接池,创建Session(相当于Connection)对象.

3. session对象
 相当于 JDBC的 Connection。
Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心。
Session是线程不安全的。
所有持久化对象必须在 session 的管理下才可以进行持久化操作。
Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久化操作的数据都缓存在 session 对象处。
持久化类与 Session 关联起来后就具有了持久化的能力。
Session维护了Hiberante一级缓存。

save()/persist()    :添加.
update()            :修改
saveOrUpdate()      :增加和修改对象,如果数据库中没有记录就是增加,有记录就是更新
delete()            :删除对象
get()/load()        :根据主键查询
createQuery()       :创建一个Query接口,编写HQL语句
createSQLQuery()    :创建一个SQLQuery接口,编写SQL语句数据库操作对象
createCriteria()    :返回一个Criteria接口.条件查询

4. 事务:Transaction
 获取 Transaction tx = session.beginTransaction();
常用方法:

***** 如果没有开启事务,那么每个Session的操作,都相当于一个独立的事务。
commit()        :提交相关联的session实例
rollback()      :撤销事务操作
wasCommitted()  :检查事务是否提交

5. Query
Query代表面向对象的一个Hibernate查询操作。
session.createQuery 接受一个HQL语句。
HQL是Hibernate Query Language缩写, 语法很像SQL语法,但是完全面向对象的。

// 1.简单查询
// List<Customer> list = session.createQuery("from Customer").list();

// 2.条件查询:
// List<Customer> list = session.createQuery("from Customer where name = ?").setParameter(0, "芙蓉").list();

// 3.分页查询:select * from customer limit a,b; a:从哪开始  b:每页显示记录数.
Query query = session.createQuery("from Customer");
query.setFirstResult(3);
query.setMaxResults(3);

List<Customer> list = query.list();
    for (Customer customer : list) {
        System.out.println(customer);
    }

6. Criteria
 Criteria是条件查询。
Criteria 是Hibernate提供的用于条件查询接口。
Criteria criteria = session.createCriteria(Customer.class);

// 1.简单查询
//List<Customer> list = session.createCriteria(Customer.class).list();

// 2.条件查询:
Criteria criteria = session.createCriteria(Customer.class);
criteria.add(Restrictions.eq("name","芙蓉"));
List<Customer> list = criteria.list();

// 3.分页查询:
Criteria criteria = session.createCriteria(Customer.class);
criteria.setFirstResult(3);
criteria.setMaxResults(3);
List<Customer> list = criteria.list();
    for (Customer customer : list) {
        System.out.println(customer);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值