SSH教学课件:C01 使用Hibernate完成对象持久化_第1页
SSH教学课件:C01 使用Hibernate完成对象持久化_第2页
SSH教学课件:C01 使用Hibernate完成对象持久化_第3页
SSH教学课件:C01 使用Hibernate完成对象持久化_第4页
SSH教学课件:C01 使用Hibernate完成对象持久化_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章使用Hibernate完成

对象持久化本章任务使用Hibernate实现:学生信息(studentinfo)的增、删、改操作升级“学生成绩系统”使用Hibernate实现学生注册使用hibernate实现学生信息的增、删、改了解Hibernate基本原理学会编写实体映射文件学会使用Hibernate完成数据增、删、改操作学会在项目中使用Hibernate本章目标为什么使用Hibernate?在编写DAO层代码时,容易出现哪些问题?思考:这部分代码规律性很强,是否可以采用“通用”的方法“集中”解决?代码繁琐容易出错纯“体力”劳动工作量大占用大量开发时间为什么使用Hibernate?使用Hibernate后的DAO层代码:代码精简易读封装了JDBC操作,以面向对象的方式操作数据开发工作量小,可以将精力集中在业务逻辑的处理上publicclassStudentInfoDAOHibImplextendsBaseHibernateDAOimplementsIStudentInfoDAO{publicStudentInfoget(intstuno){super.get(StudentInfo.class,stuno);}publicvoidadd(StudentInfostudentInfo){super.add(studentInfo);}publicvoiddel(intstuno){super.del(StudentInfo.class,stuno);}publicvoidupdate(StudentInfostudentInfo){super.update(studentInfo);}}Hibernate就是用来解决这些问题的什么是Hibernate?Hibernate之父:GavinKingJBoss核心成员之一EJB3.0专家委员会成员《HibernateInAction》作者2001年开始开发Hibernate2003年Hibernate发展为Java

世界主流持久层框架充满激情脾气倔强永不言败Hibernate是一个优秀的持久化框架什么是持久化?内存姓名:小颖性别:女特长:英语、程序设计瞬时状态磁盘持久状态用JDBC完成数据在持久和瞬时状

态间的转换:…stmt.execute("…")...瞬时状态:

保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态持久状态:

保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态持久化:将程序数据在瞬时状态和持久状态之间转换的机制持久化Hibernate是一个主流的ORM框架什么是ORM?对象数据(O)name:小颖sex:女skill:英语、程序设计User对象持久化层业务逻辑层表现层数据库TBL_User表关系型数据(R)映射信息类:User表:TBL_User属性字段nameuser_namesexuser_sexskilluser_skillORM(对象-关系映射):完成对象数据到关系型数据映射的机制称为对象-关系映射,简称ORM。

小结是一个主流的持久化框架在JDBC基础上进行分装只需要少量代码就可以完成持久化工作是一个优秀的ORM(对象-关系映射)机制通过映射文件保存映射信息在业务层以面向对象的方式编程,不用考虑数据保存形式使用Hibernate实现用户添加如何使用Hibernate实现“用户添加”功能?用Hibernate的“3个准备,7个步骤”准备1:导入Hibernate库(jar包)演示示例:添加Hibernate库到项目使用Hibernate的基本步骤准备2:添加配置文件--hibernate.cfg.xml<session-factory><propertyname="connection.url">jdbc:db2://localhost:50000/TOOLSDB</property><propertyname="connection.username">db2admin</property><propertyname="connection.password">admin</property><propertyname="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property><propertyname="dialect"> org.hibernate.dialect.SQLServerDialect</property><propertyname="show_sql">true</property>

<mappingresource="com/etp/hibernate/model/StudentInfo.hbm.xml"/></session-factory>配置数据库链接数据库“方言”运行时在控制台显示SQL语句映射文件,可以有多个packagecom.aptech.jb.entity;publicclassStudentInfo

implementsjava.io.Serializable{privateStringstuno;privateStringstuame;privateStringstuaddr;

publicUser(){//默认构造方法

}//Getterandsetter}添加默认构造方法实现Serializable接口<hibernate-mapping><classname="com.etp.hibernate.model.StudentInfo"table="tbl_studentinfo"schema="db2admin"><idname="stuno"type="java.lang.String"><columnname="stuno"/><generatorclass=“assigned"/></id><propertyname="stuname"type="java.lang.String"><columnname="stuname"/></property><propertyname="stubirth"type="java.sql.Date"><columnname="stubirth"/></property><propertyname="stusex"type="java.lang.Integer"><columnname="stusex"/></property>

…</class></hibernate-mapping>使用Hibernate的基本步骤准备3:添加实体类和映射文件(User.hbm.xml)实体类到表的映射主键属性到字段的映射主键生成器:native–由数据库生成assigned–在程序中指定小结使用Hibernate的三项准备工作是?添加Hibernate库添加Hibernate配置文件添加对应表的实体类和映射文件Hibernate配置文件中配置了哪些信息?Hibernate使用的实体类和之前定义的实体类有什么区别?使用Hibernate,系统中添加一个表的时候,都有哪些准备工作要做?添加实体类添加映射文件在hibernate.cfg.xml中增加

<mappingresource="com/etp/hibernate/model/EntityName.hbm.xml"/>使用Hibernate实现用户添加使用Hibernate的7个步骤:7、关闭Session6、提交事务5、持久化操作

save/update/delete/find4、开始一个事务3、打开Session1、Configuration2、创建SessionFactory

使用Hibernate实现用户添加七个步骤对应的程序代码publicstaticvoidmain(String[]args){Configurationconf=newConfiguration().configure();//1、读取配置文件

SessionFactorysf=conf.buildSessionFactory();//2、创建SessionFactory

Sessionsession=sf.openSession();//3、打开Session

Transactiontx=null;try{

tx=session.beginTransaction();//4、开始一个事务

//5、持久化操作

StudentInfostudentInfo=newStudentInfo(); studentInfo.setStuno("Hibernateuser"); ………

session.save(user);

mit();//6、提交事务

}catch(Exceptione){ if(null!=tx){tx.rollback();} e.printStackTrace();}finally{

session.close();//7、关闭Session}}Hibernate执行过程ConfigurationSessionFactorySessionTransaction创建创建开始savedeleteupdateget

mit()session.close()执行Hibernate.cfg.xmlFWXX.cfg.xmlUser.hbm.xml结束创建和销毁都相当耗费资源,通常一个系统内一个数据库只创建一个类似于JDBC中的Connection复杂的查询操作稍后介绍使用Hibernate实现数据的加载/删除/修改程序代码Sessionsession=sf.openSession();StudentInfostudentInfo=(StudentInfo)session.get(StudentInfo.class,id);session.close();System.out.println(studentInfo.getStuname);根据主键加载tx=session.beginTransaction();StudentInfostudentInfo=session.Load(stuno);studentInfo.setStuname("new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论