资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第一章 ORM 概述,目的:,理解ORM,熟悉Hibernate 的作用,软件分层的优点,伸缩性,可维护性,可扩展性,可重用性,可管理性,Hibernate是一个优秀的持久化框架,什么是持久化?,内存,姓名:张三,密码:123,性别:男,磁盘,用JDBC完成数据在持久和瞬时状态间的转换:,*.execute(),.,瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态,持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态,持久化:,将程序数据在瞬时状态和持久状态之间转换的机制,(4XML Mapping:Hibernate映射文件,User user=(User)session.,properties:Hibernate属性文件/Hibernate配置文件,beginTransaction();,sa,session.,testLoad(id);,持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态,passwordpwd,execute(),持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态,properties:Hibernate属性文件/Hibernate配置文件,Action,Server,Dao,DB,用JDBC 持久数据,Hiberante应用程序的结构,(1Application:运用,(2Persistent Object:持久化对象3hibernate.properties:Hibernate属性文件/Hibernate配置文件,(4XML Mapping:Hibernate映射文件,(5Database:数据库,JDBC与Hibernate的比较,相同点:,两者都是JAVA的数据库操作中间件。,两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。,两者都可以对数据库的更新操作进行显式的事务处理。,不同点:,使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernate query language)言语,操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。,数据状态不同:JDBC操作的数据是“瞬时的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以跟数据库中的值保持一致的。,什么是ORM?,对象数据O),name:张三,sex:男,pw:123,User对象,持久化层,业务逻辑层,表现层,关系型数据R),映射信息,ORM对象-关系映射):,完成对象数据到关系型数据映射的机制称为对象-关系映射,简称ORM。,类,:User,表,:TBL_User,属性,字段,name,user_name,sex,user_sex,pw,user_pw,TBL_User,复杂的查询操作稍后介绍,mapping resource=com/aptech/jb/entity/User.,将程序数据在瞬时状态和持久状态之间转换的机制,java:/comp/env/pubshibernate,配置Hibernate关联自动加载区县对应的街道,(4XML Mapping:Hibernate映射文件,mapping resource=com/aptech/jb/entity/User.,User user=this.,1)添加Hibernate库到项目,testLoad(id);,4、划“财务到红旗渠,getUname()+,+user.,User user=(User)session.,小结,是一个主流的持久化框架,在JDBC基础上进行分装,只需要少量代码就可以完成持久化工作,是一个优秀的ORM对象-关系映射机制,通过映射文件保存映射信息,在业务层以面向对象的方式编程,不用考虑数据保存形式,3个准备,1)添加Hibernate库到项目,jdbc:microsoft:sqlserverlocalhost:1433;Database=pubs,sa,pwd,true,java:/comp/env/pubshibernate,准备3:添加实体类和映射文件UserInfo.hbm.xml),7、,关闭Session,6、,提交事务,5、,持久化操作,save/update/delete/find,4、,开始一个事务,3、,翻开,Session,1、,Configuration,2、,创建,SessionFactory,使用Hibernate的7个步骤:,Configuration,SessionFactory,Session,Transaction,创建,创建,开场,save delete update get,txmit(),session.close(),执行,FWXX.cfg.xml,User.hbm.xml,终了,创建和销毁都相当耗费资源,通常一个系统内一个数据库只创建一个,类似于JDBC中的,Connection,复杂的查询操作稍后介绍,Session session=sf.openSession();,User user=(User)session.get(User.class,id);,session.close();,System.out.println(user.getUname()+,+user.getUpass();,根据主键加载,tx=session.beginTransaction();,User user=this.testLoad(id);,user.setUname(new Name);,session.update(user);,txmit();,修正,tx=session.beginTransaction();,User user=this.testLoad(id);,session.delete(user);,txmit();,没有更新数据,不进行事务控制,使用Hibernate实现:,配置Hibernate关联自动加载区县对应的街道,配置Hibernate关联并实现:,1、增加一个公司:“CSTP”,2、增加CSTP下属的三个部门,3、删除“教学”,4、划“财务到红旗渠,5、删除红旗渠,配置Hibernate多对多关联,实现某OA系统项目和人员对照关系的管理,谢谢观看,
展开阅读全文