《最经典的hibernate教程_从入门到精通.ppt》由会员分享,可在线阅读,更多相关《最经典的hibernate教程_从入门到精通.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章ORM概述目标:理解ORM熟悉Hibernate的作用软件分层的优点1.伸缩性2.可维护性3.可扩展性4.可重用性5.可管理性Hibernate是一个优秀的持久化框架什么是持久化?内存内存姓名:张三姓名:张三密码:密码:123性别:男性别:男磁盘磁盘用用JDBC完成数据在持久和瞬时状完成数据在持久和瞬时状态间的转换态间的转换:*.execute().瞬时状态:瞬时状态:保存在内存的程序数据,程序退出保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态后,数据就消失了,称为瞬时状态持久状态:持久状态:保存在磁盘上的程序数据,程序退保存在磁盘上的程序数据,程序退出后依然存在,称为程序
2、数据的持出后依然存在,称为程序数据的持久状态久状态持久化:持久化:将程序数据在瞬时状态和持久状态将程序数据在瞬时状态和持久状态之间转换的机制之间转换的机制ActionServerDaoDB用JDBC持久数据Hiberante应用程序的结构应用程序的结构(1)Application:应用(2)PersistentObject:持久化对象(3)hibernate.properties:Hibernate属性文件/Hibernate配置文件(4)XMLMapping:Hibernate映射文件(5)Database:数据库JDBC与与Hibernate的比较的比较相同点:两者都是JAVA的数据库操作
3、中间件。两者对于数据库进行直接操作的对象都不是线程安全的,都需要及时关闭。两者都可以对数据库的更新操作进行显式的事务处理。不同点:使用的SQL语言不同:JDBC使用的是基于关系型数据库的标准SQL语言,Hibernate使用的是HQL(Hibernatequerylanguage)语言操作的对象不同:JDBC操作的是数据,将数据通过SQL语句直接传送到数据库中执行,Hibernate操作的是持久化对象,由底层持久化对象的数据更新到数据库中。数据状态不同:JDBC操作的数据是“瞬时”的,变量的值无法与数据库中的值保持一致,而Hibernate操作的数据是可持久的,即持久化对象的数据属性的值是可以
4、跟数据库中的值保持一致的。什么是ORM?对象数据(对象数据(OO)name:张三:张三sex:男:男pw:123User对象对象持久化层持久化层业务逻辑层业务逻辑层表现层表现层关系型数据关系型数据(R R)映射信息映射信息ORM(对象(对象-关系映射):关系映射):完成对象数据到关系型数据映射的完成对象数据到关系型数据映射的机制称为对象机制称为对象-关系映射,简称关系映射,简称ORM。类:User表:TBL_User属性字段nameuser_namesexuser_sexpwuser_pwTBL_User小结是一个主流的持久化框架在JDBC基础上进行分装只需要少量代码就可以完成持久化工作是一个
5、优秀的ORM(对象-关系映射)机制通过映射文件保存映射信息在业务层以面向对象的方式编程,不用考虑数据保存形式3个准备1)添加添加Hibernate库到项目库到项目2-1):添加配置文件-hibernate.cfg.xml jdbc:microsoft:sqlserver:/localhost:1433;Database=pubs sa pwd com.microsoft.jdbc.sqlserver.SQLServerDriver org.hibernate.dialect.SQLServerDialect true 2-2):添加配置文件-hibernate.cfg.xmlorg.hiber
6、nate.dialect.SQLServerDialectjava:/comp/env/pubshibernate准备3:添加实体类和映射文件(UserInfo.hbm.xml)7 7、关闭关闭关闭关闭SessionSession6 6、提交事务提交事务提交事务提交事务 5 5、持久化操作持久化操作持久化操作持久化操作 save/update/delete/findsave/update/delete/find4 4、开始一个事务开始一个事务开始一个事务开始一个事务3 3、打开打开打开打开SessionSession1 1、ConfigurationConfiguration2 2、创建创建创
7、建创建SessionFactorySessionFactory 使用Hibernate的7个步骤:Configuration SessionFactory SessionTransaction创建创建创建创建开始开始save delete update get mit()session.close()执行执行Hibernate.cfg.xmlFWXX.cfg.xmlUser.hbm.xml结束结束创建和销毁都相当耗费创建和销毁都相当耗费资源,通常一个系统内资源,通常一个系统内一个数据库只创建一个一个数据库只创建一个类似于类似于JDBC中的中的Connection 复杂的查询操作稍后介绍复杂的查
8、询操作稍后介绍 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);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系统项目和人员对照关系的管理