欢迎来到天天文库
浏览记录
ID:48769243
大小:1.99 MB
页数:61页
时间:2020-01-22
《Hibernate核心内容.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hibernate核心内容本讲包含教材的章节第12章Hibernate的O/R映射第13章复杂映射关系(选学)第14章用Hibernate检索数据目录1Hibernate的映射定义2Hibernate的数据类型3复杂映射关系4Hibernate的查询基础5HQL语句详解6本讲小结映射定义下面将分别介绍主要的映射元素元素介绍元素介绍元素介绍元素介绍其他属性映射对象标识符标识符的含义内置生成器介绍内置标识符生成器介绍主键生成策略(ID
2、Generator)依靠数据库底层生成IDIdentity适合Mysql,SqlServerSequence适合Oracle,DB2Native智能选项依靠Hibernate生成IDUuid随机生成32位唯一字符串依靠应用程序本身业务规则生成IDAssigned比如使用身份证号作为唯一标识符依靠外键生成IDForeign比如一对一主键映射目录1Hibernate的映射定义2Hibernate的数据类型3复杂映射关系4Hibernate的查询基础5HQL语句详解6本讲小结Hiberante的类型Java基本类型
3、的Hibernate映射Java时间和日期类型的Hibernate映射Java大对象类型的Hibernate映射JDK自带java类的Hibernate映射自定义值类型目录1Hibernate的映射定义2Hibernate的数据类型3复杂映射关系4Hibernate的查询基础5HQL语句详解6本讲小结ORM映射单向多对一映射(Emp->Dept)单向一对多映射(Eept->Dmp)双向一对多,多对一映射(Emp<-->Dept)组件映射(User,Address)双向一对一唯一外键映射(Person<-->P
4、asscard)双向一对一主键映射(Person<-->Passcard)双向多对多映射(Stu<-->Course)继承映射(Car,Bus,Taxi)映射文件中的重要配置属性:更新相关:cascade,inverse查询相关:fetch,lazy,property-refORM映射之单向多对一单向多对一指在类图中多的一方(Emp类)拥有一的一方(Dept类)的引用从映射图上看:Emp类中的dept属性映射成Emp表中的deptno列ORM映射之单向一对多单向一对多指在类图中一的一方(Dept类)拥有多的一
5、方(Emp类)的引用从映射图上看:Dept类中的emps属性映射成Emp表中的deptno字段ORM映射之双向一对多,多对一双向一对多,多对一指在类图中双方拥有对方的引用从映射图上看:Dept类中的emps属性和Emp类中的dept属性都映射成Emp表中的deptno字段ORM映射之双向一对一唯一外键映射双向一对一唯一外键映射,从类图上看双方都拥有对方的引用。从映射图上看:Passcard的person属性对应Passcard表的pe_id列,由于一对一唯一外键映射是特殊的多对一映射,所以配置时仍然使用6、ny-to-one>标签。而Person的passcard属性都不对应列。ORM映射之双向一对一主键映射双向一对一主键映射,双方都拥有对方的引用。而从表图上看,Passcard的id既是主键又是外键从映射图上看:Person的passcard属性和Passcard的person属性都不对应列,但Passcard的person属性是Passcard中id的参照物。也就是说Passcard的id是由Person的id决定的ORM映射之双向多对多映射双向多对多映射从类图上看只有两个类,双方都拥有对方的引用。而从表图7、上看,依照第二范式,多对多关系应该拆成两个一对多,三张表。中间表有另外两张表的外键从映射图上看:Stu类中的courses属性映射成Stu_Course表中的stu_id和course_id两列Course类中的stus属性也映射成Stu_Course表中的stu_id和course_id两列ORM映射之继承映射从映射图上看:三个类对应三张表。子类继承父类的属性存储在父类对应的表中。所以更新或查询一个子类要同时操作操作两张表cascade和inverseCasade用来说明当对主对象进行某种操作时是否对其关联8、的从对象也作类似的操作。Inverse表示是否放弃维护关联关系,inverse=”true”表示该对象不维护关联关系Inverse常在one-to-many和many-to-many的集合定义中使用one-to-many维护关联关系就是更新外键。many-to-many维护关联关系就是在中间表增减记录。目录1Hibernate的映射定义2Hibernate的数据类型3复杂映射关系4Hibernate
6、ny-to-one>标签。而Person的passcard属性都不对应列。ORM映射之双向一对一主键映射双向一对一主键映射,双方都拥有对方的引用。而从表图上看,Passcard的id既是主键又是外键从映射图上看:Person的passcard属性和Passcard的person属性都不对应列,但Passcard的person属性是Passcard中id的参照物。也就是说Passcard的id是由Person的id决定的ORM映射之双向多对多映射双向多对多映射从类图上看只有两个类,双方都拥有对方的引用。而从表图
7、上看,依照第二范式,多对多关系应该拆成两个一对多,三张表。中间表有另外两张表的外键从映射图上看:Stu类中的courses属性映射成Stu_Course表中的stu_id和course_id两列Course类中的stus属性也映射成Stu_Course表中的stu_id和course_id两列ORM映射之继承映射从映射图上看:三个类对应三张表。子类继承父类的属性存储在父类对应的表中。所以更新或查询一个子类要同时操作操作两张表cascade和inverseCasade用来说明当对主对象进行某种操作时是否对其关联
8、的从对象也作类似的操作。Inverse表示是否放弃维护关联关系,inverse=”true”表示该对象不维护关联关系Inverse常在one-to-many和many-to-many的集合定义中使用one-to-many维护关联关系就是更新外键。many-to-many维护关联关系就是在中间表增减记录。目录1Hibernate的映射定义2Hibernate的数据类型3复杂映射关系4Hibernate
此文档下载收益归作者所有