一:Hibernate简介

来源:互联网 发布:淘宝主持真的假的 编辑:程序博客网 时间:2024/06/16 03:12

   Hibernate是一个对象关系映射(Object-Relation Mapping,ORM)框架,它对JDBC进行了轻量级的封装。应用HIbernate框架,程序员可以不用再面对繁琐的面向过程的数据库操作,而是升级到面向对象的问题上来,这样不仅提高了开发效率,还可以避免应用JDBC编程时容易发生的错误。


一:什么是对象关系映射呢?

   对象关系映射,其实从字面上就可以理解其含义,就是把关系与对象映射起来,关系指的是关系数据库,而对象指的是程序中的类对象。



二:Hibernate工作流程


(1)创建一个Configuration类实例

(2)加载Hibernate核心配置文件

(3)创建SessionFactory对象

(4)获取Session对象

(5)应用Session对象操作数据库



三:Hibernate核心接口

(1)Configuration接口

   Configuration负责管理Hibernate的配置信息。

Configuration cfg=new Configuration().configure();

(2)SessionFactory接口

SessionFactory负责创建Session实例。

Configuration cfg=new Configuration().configure();SessionFactory sessionFactory=cfg.buildSessionFactory();


(3)Session接口

Session是Hibernate持久化操作的基础,提供了众多持久化方法,如save、update、delete、query等。

Configuration cfg=new Configuration().configure();SessionFactory sessionFactory=cfg.buildSessionFactory();Session session=sessionFactory.openSession();

(4)Transaction接口

当使用Session的save()、delete()、update()等操作时,都是在对Session的缓存进行操作,并没有直接操作数据库,Hibernate把这些操作用事务来控制,当调用事务的commit()方法时,才真正地执行数据库读写操作。

事务对象通过Session创建:

Configuration cfg=new Configuration().configure();SessionFactory sessionFactory=cfg.buildSessionFactory();Session session=sessionFactory.openSession();Transaction t=session.beginTransaction();

(5)Query接口

Query接口是Hibernate的查询接口,用于向数据库中查询对象,在它里面包装了一种HQL(Hibernate Query Language)查询语言,采用了新的面向对象的查询方式,是Hibernate官方推荐使用的标准数据库查询语言。

查询语句格式:

Query query=session.createQuery("from UserTable where id=1");List list=query.list();

参数设置方法有两种:

a.

Query query=session.createQuery("from UserTable where id=?");query.setInt(0,"要设置的值");或者query.setParameter(0,"要设置的值");//通用方法,任何类型参数

b.

Query query=session.createQuery("from UserTable where id=:idValue"); //idValue任取名字query.setInt("idValue","要设置的值");或者query.setParameter("idValue","要设置的值");//通用方法,任何类型参数


**当只需查询单个数据时:

Query query=session.createQuery("from  Druginfo where drugid=?");query.setString(0, drugid);query.setMaxResults(1);Druginfo druginfo=(Druginfo)query.uniqueResult();



1 0