Hibernate的核心API

Hibernate的核心 API:
Configuration : 负责管理 Hibernate 的配置信息
1.加载核心配置文件:
核心配置有两种:
* hibernate.properties:
* 加载:
* Configuration configuration = new Configuration();
* hibernate.cfg.xml:
* 加载:
* Configuration configuration = new Configuration().configure();
 
2.加载映射文件:
* 第一种写法:
* configuration.addResource("cn/itcast/hibernate3/demo1/Customer.hbm.xml");
* 第二种写法:(要求:映射文件名称要规范,类与映射在同一个包下)
* configuration.addClass(Customer.class);
 
SessionFactory:Session工厂 .
Configuration对象根据当前的配置信息生成 SessionFactory对象
SessionFactory 对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句
SessionFactory 对象是线程安全的
SessionFactory还负责维护Hibernate的二级缓存
 
SessionFactory对象根据数据库信息,维护连接池,创建Session(相当于 Connection)对象.
 
抽取工具类:
public class HibernateUtils {
private static Configuration configuration;
private static SessionFactory sessionFactory;
static{
configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
}
public static Session openSession(){
return sessionFactory.openSession();
}
public static void main(String[] args) {
openSession();
}
}
 
在Hibernate中使用c3p0连接池:
* 引入c3p0的jar包
* 在核心配置中添加一段配置:
<!-- C3P0连接池设定-->
<!-- 使用c3po连接池  配置连接池提供的供应商-->
<property
name=" connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider
</property>
<!--在连接池中可用的数据库连接的最少数目 -->
<property name=" c3p0.min_size">5</property>
<!--在连接池中所有数据库连接的最大数目  -->
<property name=" c3p0.max_size">20</property>
<!--设定数据库连接的过期时间,以秒为单位,
如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 -->
<property name=" c3p0.timeout">120</property>
 <!--每3000秒检查所有连接池中的空闲连接 以秒为单位-->
<property name=" c3p0.idle_test_period">3000</property>
 
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接口.条件查询
 
Transaction:
获得:
Transaction tx = session.beginTransaction();
 
常用方法:
commit() :提交相关联的session实例
rollback() :撤销事务操作
wasCommitted() :检查事务是否提交
 
***** 如果没有开启事务,那么每个Session的操作,都相当于一个独立的事务
 
Query
Query代表面向对象的一个Hibernate查询操作
session.createQuery 接受一个HQL语句
HQL是Hibernate Query Language缩写, 语法很像SQL语法,但是 完全面向对象的
 
Criteria
Criteria条件查询

SQLQuery
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值