5.web.hbernate.struts2三部分.docxVIP

  • 1
  • 0
  • 约2.51万字
  • 约 18页
  • 2018-08-22 发布于江苏
  • 举报
5.web.hbernate.struts2三部分

shEmp配置文件版 要求:代码和流程图(代码中要有注释清楚标明每步干什么为什么) 详细见Test1 jdbc连接数据库使用了那些类和接口 要求:文档说明每个类和接口的作用即可 Connrction 接口 接口用于连接数据库 DriverManager 类 用于管理数据库驱动,创建数据库连接 Statement 接口 执行SQL语句并将数据检索到ResultSet中 ResultSet 接口 数据库结果集,通常由执行SQL查询语句产生 PreparedStatement 接口 执行预编译SQL语句 Servlet创建与使用 要求:需要写一个案例(例如登录不用很复杂) 详细见Test3 hibernate操作步骤 要求:文档说明,每一步都要说明 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()方法:从数据库中加载Java对象。 Query()方法:从数据库中查询Java对象。 用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

文档评论(0)

1亿VIP精品文档

相关文档