Hibernate总结(一)

一、hibernate总体知识架构图

本文主要是按照这幅图来组织知识点


二、知识准备

1.hibernate使用的场景

只能说hibernate不适应的场景来说:

1.不适合OLAP(On-Line Analytical Processing联机分析处理),以查询分析数据为主的系统;适合OLTP(On-line transaction processing 联机事务处理)。
2.对于些关系模型设计不合理的老系统,也不能发挥hibernate优势。
3.数据量巨大,性能要求苛刻的系统,hibernate也很难达到要求,批量操作数据的效率也不高。

总之:hibernate对数据的查询效率较低

给程序员提供的一些便利是以消耗性能来提供的。


2.hibernate常用API(五大核心接口)


具体方法

Configuration配置对象,对应着配置文件
configure(String)
configure() 加载默认的主配置文件(hibernate.cfg.xml)
addResource(String)
addClass(Class)
buildSessionFactory()
方法链


SessionFactory Session工厂
openSession() 打开一个新的Session
getCurrentSession()
close()


Session
beginTransaction()
getTransaction()
close() 关闭
----------
save(Object)
update(Object)
delete(Object)删除的是实体对象
get(Class, id) : Object
createQuery(String hql) : Query
...

Query
list() : List
uniqueResult() : Object
setFirstResult(int)
setMaxResults(int)


Criteria(不算是核心类)

一种查询方法

Criteria.add(Restrictions.eq("name", name))

Transaction
begin()
commit()
rollbacl()


3.如何搭建hibernate;

1)导入jar包

2)在src下建立hibernate.cfg.xml文件

3)创建实体类

4)建立实体类对应的XXX .hbm.xml;

5)将XXX .hbm.xml;注册到hibernate.cfg.xml


6)创建HibernateUtil

代码如下:

	private static SessionFactory sessionFactory = null ;
	//静态初始化快(在类加载时创建)
	static {
		try{
			//Configuration表示hibernate初始器
			sessionFactory = new Configuration().configure().buildSessionFactory();
		}catch(Throwable e){
			System.out.println("hibernate 初始化失败!");
			e.printStackTrace();
			//throw new ExceptionInInitializerError(e);
		}
	}
	/**
	 * 得到SessionFactory
	 * @return
	 */
	public static SessionFactory getSeesionFactoty()
	{
		return sessionFactory;
	}
	/**
	 * 得到Session
	 * @return
	 */
	public static Session getSession()
	{
		return sessionFactory.openSession();//一个作用就是拥有事务
	}


4.持久化对象的三种状态

分别为:瞬时状态(Transient),持久化状态(Persistent),离线状态(Detached)。三种状态下的对象的生命周期如下


  三种状态的区别是:

瞬时状态的对象:没有被session管理,在数据库没有;

离线状态:没有被session管理,但是在数据库中存在。

持久化状态的对象:被session管理,在数据库存在,当属性发生改变,在清理缓存时,会自动和数据库同步;(注意,改变会同步)


hibernate访问持久化对象(如下图):



















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值