ImageVerifierCode 换一换
格式:PPT , 页数:35 ,大小:1.38MB ,
资源ID:8117051      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8117051.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SSH基础知识之Hibernate.ppt)为本站会员(myw993772)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

SSH基础知识之Hibernate.ppt

1、SSH基础知识之Hibernate,主讲人:周文敏 2012-2-13,,ORM介绍,看广州人与北京人做生意 何谓ORM,ORM介绍,看广州人与北京人做生意,ORM介绍,ORM视图,ORM介绍,何谓ORM,对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。,Hibernate介绍,Hibernate介绍 Hibernate组成部分 Hibernate使用

2、流程,Hibernate介绍,hibernate 是一个O/R mapping框架,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。,Hibernate程序的组成部分,先看看联合国大会的组成 有各个国家的老外们参加 有开会的发言人 老外们需要翻译,Hibernate程序的组成部分,使用了Hibernate的程序: 有数据库中的各张表 有程序里的各个对象 当然需要一个“翻译”来告诉程序里的各个对象“各张表在程序里分别对应那个对象”,Hibernate程序的组成部分,Hibernate配置

3、文件:hibernate.cfg.xml 数据库 与数据库对应的各个对象:POJO JavaBean与库表的映射配置:*.hbm.xml,hibernate.cfg.xml样例,com.mysql.jdbc.Driverjdbc:mysql:/localhost:3306/hibernate_learningroot 1231org.hibernate.dialect.MySQLDialectthreadorg.hibernate.cache.NoCacheProvidertruecreate,POJO样例,package base_mon.beans;public class Student

4、 private String id;private String name;public String getId() return id;public void setId(String id) this.id = id;public String getName() return name;public void setName(String name) this.name = name; ,*.hbm.xml,Hibernate使用流程,建立库表(找发言人) 编写hibernate.cfg.xml(总体配置) 编写POJO(找各国代表) 配置POJO与库表的映射(请翻译) 编写数据库操

5、作代码(开始开会),Hibernate查询方案,HQL方案 统计函数调用方案 嵌套子查询方案 本地SQL查询方案(选讲),Hibernate查询方案,普通查询 查询部分字段 查询一个字段 查询多个字段 实例化多字段查询结果,Hibernate查询方案HQL方案,Hibernate查询方案,在HQL中,使用的是对象,而不是库表。 返回的是保存着要查询的数据的对象。 Query q = session.createQuery( “FROM Student s WHERE s.age 18” );,HQL方案 - 普通查询,Hibernate查询方案,在HQL中指定要查询的对象的属性。 取得查询结果

6、时,查询到的属性的值不在以所属对象的形式保存在List中,而是以自身类型的形式保存在List中。,HQL方案 - 查询一个字段,Hibernate查询方案,Query q = session.createQuery( “SELECT s.name FROM Student s WHERE s.age 18” );List list = q.list();for ( int i = 0 ; i list.size() ; i + ) String name = ( String )list.get(i);,HQL方案 - 查询一个字段,Hibernate查询方案,在HQL中指定要查询的对象的各个

7、属性。 取得查询结果时,查询到的属性的值不在以所属对象的形式保存在List中,而是以Object数组的形式保存在List中。,HQL方案 - 查询多个字段,Hibernate查询方案,Query q = session.createQuery( “SELECT s.name, s.age FROM Student s WHERE s.age 18” );List list = q.list();for ( int i = 0 ; i list.size() ; i + ) Object res = ( Object )list.get(i);String name = ( String )re

8、s0;Integer age = ( Integer )res1;,HQL方案 - 查询多个字段,Hibernate查询方案,将多字段查询的结果保存在对应的实例中,让查询结果以对象的形式被程序使用。 在HQL中要显示实例化结果。 对应的POJO要拥有实例化自身的构造函数。,HQL方案 实例化多个字段查询结果,Hibernate查询方案,Query q = session.createQuery( “SELECT new Student( s.name, s.age ) FROM Student s WHERE s.age 18” );List list = q.list();for ( int

9、 i = 0 ; i list.size() ; i + ) Student stu = ( Student )list.get(i);Student类要拥有Student( String, int )的构造函数。,HQL方案 实例化多个字段查询结果,Hibernate查询方案,COUNT():统计记录条数。 MIN():求最小值。 MAX():求最大值。 SUM():求和。 AVG():求平均值。,统计函数调用方案,Hibernate查询方案,Query q = session.createQuery( “SELECT COUNT(*) FROM Student); Query q = se

10、ssion.createQuery( “SELECT MIN(s.age) FROM Student s); Query q = session.createQuery( “SELECT MAX(s.age) FROM Student s); Query q = session.createQuery( “SELECT SUM(s.age) FROM Student s); Query q = session.createQuery( “SELECT AVG(s.age) FROM Student s);,统计函数调用方案,Hibernate查询方案,All:所有记录。 Any:记录中的任意一

11、条。 Some:与Any一样。 In:与“Any”一样。 Exists:查询至少要返回一条记录。,嵌套子查询方案,Hibernate查询方案,求平均年龄以上的学生姓名: Query q = session.createQuery( “SELECT s.name FROM Student s WHERE s.age exists( SELECT AVG(s.age) FROM Student s );,嵌套子查询方案,Hibernate查询方案,基本查询 命名查询,本地SQL检索方案,Hibernate查询方案,使用session的createSQLQuery方法。 获取查询结果以前要将别名与实

12、体类关联起来。,本地SQL检索方案 - 基本查询,Hibernate查询方案,String sql = “SELECT s.* FROM Student s”;SQLQuery q = session.createSQLQuery( sql );q.addEntity( “s”, Student.class );List list = q.list();,本地SQL检索方案 - 基本查询,Hibernate查询方案,在POJO映射文件中对查询命名和设定。 在代码中用session的getNamedQuery方法来执行某命名查询。,本地SQL检索方案 -命名查询,Hibernate查询方案,:a

13、ge ,本地SQL检索方案 -命名查询,Hibernate查询方案,Query q = session.getNamedQuery( “QueryStudents” );/sql语句参数赋值q.setInteger( “age”, 18 );,本地SQL检索方案 -命名查询,Hibernate其它功能,集合映射-Map,Set映射 关联表的操作一对一, 一对多 与 多对一, 多对多 多线程数据共享解决方案-Hibernate官方不推荐多线程共享同一个Session。-使用ThreadLocal 批处理解决方案 Cache缓存控制一级缓存:Session二级缓存:SessionFactory Clob与Blob数据处理方案Hibernate处理非文本数据和大容量数据的解决方案使用java.sql.Clob和java.sql.Blob 数据检索策略立即检索 lazy=false延迟检索 lazy=true预先抓取 fetch=join,Thanks & Question?,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报