复旦大学:《面向对象分析和设计》课程资料_UML和模式_Hibernate 演示场景

演示场景
演示场景

类图 > Gender female +course Course Teacher +name String +totalStudent s > Address +addrInfo NormalCourse OnlineCourse +classroomName +URL
类图

配置 HibernateApplication Context xml hibernate. cfg. xml 创建数据库 ooad/ooad 关于 Library/ Project模板
配置 • HibernateApplicationContext.xml • hibernate.cfg.xml • 创建数据库 – ooad/ooad • 关于Library/Project模板

Class mapping 创建类 Teacher及属性name/ birthday @Test public void create Teacher Test(t 基类的用途 Teacher teacher= new Teacher o; teacher setName student1") 修改 Hibernate.cg, xml teacher. setBirthday(new Date) getPersistence Manager().save(teacher); 第一次运行: 看 DB Schema assertObjectPersisted(teacher) 修改 Rollback属性,再次运行 看DB数据 SQL输出日志说明
Class mapping • 创建类Teacher及属性name/birthday • 基类的用途 • 修改Hibernate.cfg.xml • 第一次运行: – 看DB Schema • 修改Rollback属性,再次运行 – 看DB数据 • SQL输出日志说明 @Test public void createTeacherTest() { Teacher teacher = new Teacher(); teacher.setName("student1"); teacher.setBirthday(new Date()); getPersistenceManager().save(teacher); assertObjectPersisted(teacher); }

Datatype/enum Mapping 自定义属性的映射: Addresspostcode, addrinfo},观察 Schema自 动更新 public void create Teacher WithAttribute ( t Teacher teacher new Teacher (; teacher setName teacher1") teacher. setBirthday(new Date O) teacher. getAddress(). setPostCode( 200433") teacher. setGender gender female) getPersistence Manager(). save(teacher); assertObjectPersisted(teacher) Teacher savedTeacher= getPersistence Manager( get(Teacher class, teacher.getlo) assertEquals(teacher, savedTeacher) assertEquals(teacher getGender(, saved Teacher get Gender(;
Datatype/enum Mapping • 自定义属性的映射: Address{postcode,addrinfo},观察Schema自 动更新 @Test public void createTeacherWithAttribute() { Teacher teacher = new Teacher(); teacher.setName("teacher1"); teacher.setBirthday(new Date()); teacher.getAddress().setPostCode("200433"); teacher.setGender(Gender.female); getPersistenceManager().save(teacher); assertObjectPersisted(teacher); Teacher savedTeacher= getPersistenceManager().get(Teacher.class, teacher.getId()); assertEquals(teacher, savedTeacher); assertEquals(teacher.getGender(), savedTeacher.getGender()); }

@Enumerated @Enumerated (Enum Type STRING Delete all tables:因为 Schema有时无法自动更 新 Check data base schema
• @Enumerated • @Enumerated(EnumType.STRING) – Delete all tables:因为Schema有时无法自动更 新 • Check database schema

Simple HQl public void find Teacher ByHQLO t Teacher teacher= new Teacher teachersetName teacher1") teacher. set Birthday new Date O); teacher.getAddress( setPostCode 200433 ) teacher set Gender( gender female) getPersistence Manager().save(teacher) String findTeacherHQL ="from Teacher t where t name like t% +and t address. postcode= 200433 Query hql getPersistence Manager(). createQuery(find TeacherHQL) assertEquals(1, hql. list().size(;
Simple HQL @Test public void findTeacherByHQL() { Teacher teacher = new Teacher(); teacher.setName("teacher1"); teacher.setBirthday(new Date()); teacher.getAddress().setPostCode("200433"); teacher.setGender(Gender.female); getPersistenceManager().save(teacher); String findTeacherHQL = "from Teacher t where t.name like 't%'" + " and t.address.postCode = '200433'"; Query hql = getPersistenceManager().createQuery(findTeacherHQL); assertEquals(1, hql.list().size()); }

Inheritance Mapping 继承的映射方式:单表映射 Create abstract course class and it's subclasses @Entity @Inheritance strategy= Inheritance Type SINGLE TABLE @DiscriminatorColumn(name="COURSETYPE") public abstract class Course extends Base Modelobject t @Basic String name; aBasic Integer totalStudents @Entity @DiscriminatorValue( NORMAL") public class NormalCourse extends Course i
Inheritance Mapping • 继承的映射方式:单表映射 • Create abstract course class, and it’s subclasses; @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "COURSETYPE") public abstract class Course extends BaseModelObject { @Basic String name; @Basic Integer totalStudents; @Entity @DiscriminatorValue("NORMAL") public class NormalCourseextends Course {

Inheritance Mapping 测试代码:创建两个不同类型的 Course,查看DB Schema, Rollback(false),运行后查看数据 Normal Course normal Course= new Normalcourse normalCourse setName "normal course") normal Course. setTotalStudents(10) normal Course. setclassroomName(S209") getPersistence Manager().save(normalCourse); assertObjectPersisted(normal Course) Online course online course new Online Course online Course. setName online course online Course. setTotalStudents (200 onlineCourseseturlhtTp://www.course.com/test") getPersistence Manager( save online Course ); assertobjectPersisted(online Course)
Inheritance Mapping • 测试代码:创建两个不同类型的Course,查看DB Schema,Rollback(false),运行后查看数据 NormalCourse normalCourse = new NormalCourse(); normalCourse.setName("normal course"); normalCourse.setTotalStudents(10); normalCourse.setClassroomName("S209"); getPersistenceManager().save(normalCourse); assertObjectPersisted(normalCourse); OnlineCourseonlineCourse = new OnlineCourse(); onlineCourse.setName("online course"); onlineCourse.setTotalStudents(200); onlineCourse.setURL("http://www.course.com/test"); getPersistenceManager().save(onlineCourse); assertObjectPersisted(onlineCourse);

Inheritance Mapping 测试代码如下,在运行前分析是否能通过: 测试代码的副作用的危害 String hsql1=from Course List hsql1Result= getPersistence Manager(). createQuery(hsql1) list( assertEquals(2, hsg/rEsult size ll String hsql2="from NormalCourse hsql1Result= get PersistenceManager( createQuery(hsql2) listo assertEquals(1, hsq/lResult size(l
Inheritance Mapping • 测试代码如下,在运行前分析是否能通过: 测试代码的副作用的危害。 String hsql1 = "from Course"; List hsql1Result = getPersistenceManager().createQuery(hsql1).list(); assertEquals(2, hsql1Result.size()); String hsql2 = "from NormalCourse"; hsql1Result = getPersistenceManager().createQuery(hsql2).list(); assertEquals(1, hsql1Result.size());
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Hibernate Persistence.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_AOP Aspect Oriented Programming.pptx
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_复习:OOAD部分.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 21 测试驱动的开发与重构.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 19 Chapter 20 Chapter 22.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 18 - 使用GRASP的对象设计示例.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 17 - GRASP基于职责设计对象.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 16 - UML类图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 15 - UML交互图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 14 - 迈向对象设计.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 13 - 逻辑架构和UML包图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 11 - 操作契约.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 10 - 系统顺序图.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 9 - 领域模型.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 8 - 细化阶段的迭代——基础.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 7 - 其他需求.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 6 - 用例.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 4 Chapter 5 - 初始阶段的需求.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_Chapter 3 - 案例分析 THE NEXTGEN POS SYSTEM.ppt
- 复旦大学:《面向对象分析和设计》课程资料_UML和模式_OOP:Object-Oriented Programming.pptx
- 复旦大学:《电子商务》课程资源_教学大纲.pdf
- 复旦大学:《电子商务》课程资源_教学案例:The Business Model-Recent Developments and Future Research-JOM2011.pdf
- 复旦大学:《电子商务》课程资源_教学研究:Online Game Addiction among Adolescents_Motivation and Prevention Factors.pdf
- 复旦大学:《电子商务》课程资源_教学研究:Research On The Utility Of An Advanced ACA In Context-Aware Tour Planning System.pdf
- 复旦大学:《电子商务》课程PPT课件_第二次课 电子商务的商业模式与分类.ppt
- 复旦大学:《电子商务》课程PPT课件_第一次课 引言(胥正川).ppt
- 复旦大学:《电子商务》课程PPT课件_第三次课 电子商务过程及相关因素(电子商务创业).ppt
- 复旦大学:《电子商务》课程PPT课件_第四次课 电子商务商业计划书写作 Creating a Winning E-Business Second Edition.ppt
- 复旦大学:《电子商务》课程PPT课件_第七次课 B2C电子商务——网上零售.pptx
- 复旦大学:《电子商务》课程PPT课件_第九次课 B2B电子商务(B2B行业平台).ppt
- 复旦大学:《电子商务》课程PPT课件_第五次课 商业模式的概念与内涵(发现商业模式).ppt
- 复旦大学:《电子商务》课程PPT课件_第八次课 电子商务模式与应用课程主题案例分析与展示——电子商务团购.ppt
- 复旦大学:《电子商务》课程PPT课件_第六次课 电子商务运营与管理 Getting Your E-Business Off The Ground.ppt
- 复旦大学:《电子商务》课程PPT课件_第六次课 电子商务运营与管理 Operating Your E-Business.ppt
- 复旦大学:《电子商务》课程PPT课件_第十次课 社会化电子商务——Hold住社会化媒体营销.ppt
- 复旦大学:《计算机图形学》课后习题答案_1.docx
- 复旦大学:《计算机图形学》课后习题答案_2.docx
- 复旦大学:《计算机图形学》课后习题答案_3.docx
- 复旦大学:《计算机图形学》课后习题答案_4.docx
- 复旦大学:《计算机图形学》课后习题答案_5.docx