15-Hibernate组件框架幻灯片.pptVIP

  • 2
  • 0
  • 约9.57千字
  • 约 45页
  • 2016-12-05 发布于浙江
  • 举报
Hibernate的初始化 (1)创建一个Configuration类的实例,Configuration类的构造方法把默认文件路径下的perties配置文件中的配置信息读入到内存: Configuration config = new Configuration(); (2)调用Configuration类的addClass(Customer.class)方法: config.addClass(Customer.class); 该方法把默认文件路径下的Customer.hbm.xml文件中的映射信息读入到内存中。 (3)调用Configuration类的buildSessionFactory()方法: sessionFactory = config.buildSessionFactory(); SessionFactory接口 一个SessionFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。SessionFactory有以下特点: 它是线程安全的,这意味着它的同一个实例可以被应用的多个线程共享。 它是重量级的,这意味着不能随意创建或销毁它的实例。如果应用只访问一个数据库,只需要创建一个SessionFactory实例,在应用初始化的时候创建该实例。如果应用同时访问多个数据库,则需要为每个数据库创建一个单独的SessionFactory实例。 Session接口 Session接口是Hibernate应用使用最广泛的接口。 Session也被称为持久化管理器,它提供了和持久化相关的操作,如添加、更新、删除、加载和查询对象。 Session有以下特点: 不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。 Session实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,例如为每个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例。 Session接口操纵数据库的方法 Session接口提供了操纵数据库的各种方法,如: save()方法:把Java对象保存数据库中。 update()方法:更新数据库中的Java对象。 delete()方法:把Java对象从数据库中删除。 load()或get()方法:从数据库中加载Java对象。 find()方法:从数据库中查询Java对象。在 Hibernate3中,该方法已经被废弃。 Hibernate提供了专门的Query查询接口。 用Session来执行事务的流程 Session session = factory.openSession(); Transaction tx; try { //开始一个事务 tx = session.beginTransaction(); //执行事务 ... //提交事务 mit(); } catch (Exception e) { //如果出现异常,就撤销事务 if (tx!=null) tx.rollback(); throw e; } finally { //不管事务执行成功与否,最后都关闭Session session.close(); } 正常执行数据库事务的流程 saveCustomer()方法 该方法调用Session的save()方法,把Customer对象持久化到数据库中。 tx = session.beginTransaction(); session.save(customer); mit(); 当运行session.save()方法时,Hibernate执行以下SQL语句: insert into CUSTOMERS (ID, NAME, EMAIL, PASSWORD, PHONE, ADDRESS, SEX, IS_MARRIED,DESCRIPTION, IMAGE, BIRTHDAY, REGISTERED_TIME) values(1,Tom,tom@,1234Shanghai,M,0,I am very honest., ?,1980-05-06,null) 在test()方法中并没有设置Customer对象的id属性,Hibernate会根据映射文件的配置,采用in

文档评论(0)

1亿VIP精品文档

相关文档