对象关系映射Hibernateppt课件.ppt
《对象关系映射Hibernateppt课件.ppt》由会员分享,可在线阅读,更多相关《对象关系映射Hibernateppt课件.ppt(37页珍藏版)》请在三一办公上搜索。
1、对象/关系映射Hibernate,Email:,课程目标:,理解O/R Mapping原理掌握Hibernate开发的相关知识能使用Hibernate进行实际项目开发,目录,一、持久化层O/R Mapping二、Hibernate入门三、Hibernate映射申明(Mapping declaration)四、持久化对象的状态和生命周期五、Hibernate查询六、Hibernate最佳实践,一、持久化层O/R Mapping,表现层,逻辑层,数据层,业务逻辑层,对象持久化层,如何进行对象关系数据库的匹配,-oid:int-name:String-publish:Date-description
2、:String,Book,基于关系数据库的持久层可选方案,基于关系数据库的持久层可选方案,O/R Mapping-What?Why?,什么是O/R Mapping?对象-关系映射是一门非常实用的工程技术,它实现了Java应用中的对象到关系数据库中的表的自动的(和透明的)持久化,使用元数据(meta data)描述对象与数据库间的映射。,O/R Mapping的优点提高生产率(Productivity)可维护性(Maintainability)更好性能(Performance)厂商独立性(Vendor independence),二、Hibernate入门,Hibernate概述 Hiberna
3、te是非常优秀、成熟的O/R Mapping框架。它提供了强大的对象和关系数据库映射以及查询功能。Hibernate优势开源(LGPL)成熟流行(约13 000 downloads/month)自定义APIJBoss 将用Hibernate3实现Entity Beans,Hibernate开发步骤,一、持久化类的设计二、持久化类和关系数据库的映射三、应用的开发,持久化Java类必须遵循的原则,为类的持久化类字段申明访问方法(get/set)。Hibernate对JavaBeans风格的属性实行持久化。实现一个默认的构造方法(constructor)。这样的话Hibernate就可以使用Cons
4、tructor.newInstance()来实例化它们。如果是集合类型的属性,它的类型必须定义为集合的接口。例如:List、Set。提供一个标识属性(identifier property)。如果没有该属性,一些功能不起作用,比如:级联更新(Cascaded updates)Session.saveOrUpdate()。,持久化类和关系数据库的映射,Hibernate核心接口,Configuration,概述:Configuration 类负责管理Hibernate 的配置信息。它包括如下内容:Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect
5、,数据库连接池等。Hibernate映射文件(*.hbm.xml)。Hibernate配置的两种方法:属性文件(hibernate.properties)。调用代码:Configuration cfg=new Configuration();Xml文件(hibernate.cfg.xml)。调用代码:Configuration cfg=new Configuration().configure();,Configuration例子,数据库连接的配置(用属性文件方式)hibernate.dialect net.sf.hibernate.dialect.MySQLDialecthibernate.
6、connection.driver_class com.mysql.jdbc.Driverhibernate.connection.url jdbc:mysql:/localhost/hibernatehibernate.connection.username roothibernate.connection.password数据库连接池的配置DBCP(App Server连接池首选)hibernate.connection.provider_class net.sf.hibernate.connection.DBCPConnectionProvider配置DBCP连接池其它hibernate
7、.show_sql truehibernate.jdbc.fetch_size 50hibernate.jdbc.batch_size 25,SessionFactory,概述:应用程序从SessionFactory(会话工厂)里获得Session(会话)实例。它在多个应用线程间进行共享。通常情况下,整个应用只用一个会话工厂例如在应用初始化时被创建。然而,如果你使用Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂。会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。调用代码:SessionFactory sessionFactory=configu
8、ration.buildSessionFactory();,Session(会话),概述:Session不是线程安全的,它代表与数据库之间的一次操作,它的概念介于Connection和Transaction之间。Session也称为持久化管理器,因为它是与持久化有关的操作接口。Session通过SessionFactory打开,在所有的工作完成后,需要关闭。它与Web层的HttpSession没有任何关系。调用代码Session session=sessionFactory.openSession();,Transaction(事务),概述:它将应用代码从底层的事务实现中抽象出来这可能是一个J
9、DBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA)允许应用通过一组一致的API控制事务边界。这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。调用代码:Transaction tx=session.beginTransaction();注:使用Hibernate进行操作时(增、删、改)必须显示的调用Transaction(默认:autoCommit=false)。,Query,概述:Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。查询语句使用HQL或者本地数据库的SQL方言编写。调用代码:Query query=sessio
10、n.createQuery(“from User”);,用户的例子,持久化类User.javapublic class User private Long id;private String name;private Date birthday;private String email;public User()public User(String name,Date birthday,String email).Get/Set,映射文件User.hbm.xml,应用UserTest.java,public void testCreate()throws Exception Configura
11、tion cfg=new Configuration();cfg.addURL(UserTest.class.getResource(/com/test/um/User.hbm.xml);SessionFactory sessionFactory=cfg.buildSessionFactory();Session session=sessionFactory.openSession();Transaction tx=session.beginTransaction();SimpleDateFormat format=new SimpleDateFormat(yyyy-mm-dd);User u
12、ser=new User(Jack,format.parse(1980-04-12),J);session.save(user);mit();assertNotNull(user.getId();session.clear();User user_2=(User)session.get(User.class,user.getId();assertNotNull(user_2);session.close();,应用UserTest.java,保存用户:session.save(user);修改用户:session.update(user);保存或修改用户:session.saveOrUpdat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 关系 映射 Hibernateppt 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5375263.html