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