已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,一对一单向.典型场合:一个人对应一个地址,我们一般只要求给定一个人知道他的地址,却不需要给定一个地址确定一个人的(1) 创建表DROP TABLE IF EXISTS test.person;CREATE TABLE test.person ( ID int(10) unsigned NOT NULL auto_increment, Name varchar(45) NOT NULL, AddressID int(10) unsigned NOT NULL, PRIMARY KEY (ID), KEY FK_person_1 (AddressID),) DROP TABLE IF EXISTS test.address;CREATE TABLE test.address ( ID int(10) unsigned NOT NULL auto_increment, city varchar(45) NOT NULL, street varchar(45) default NULL, PRIMARY KEY (ID) (2) 创建hmb.xml文件 (3) 生成POJO类(4)编写测试程序public static void main(String args) Configuration config = new Configuration().configure();SessionFactory sessionFactory = config.buildSessionFactory(); Person p1=new Person(); p1.setAge(21); p1.setName(zhangsan); Address add1=new Address(); add1.setCity(hangzhou); p1.setAddress(add1); Session session= sessionFactory.openSession(); Transaction tx=session.beginTransaction(); session.save(add1); session.save(p1); mit(); session.close(); 2,一对一双向典型场合:一个人对应一个身份证号,我们可以根据一个人得到它的身份证号码,也可以根据身份证号码确定一个人(1)建立表CREATE TABLE test.person ( ID int(10) unsigned NOT NULL auto_increment, Name varchar(45) NOT NULL, CardID int(10) unsigned NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.idcard ( ID int(10) unsigned NOT NULL auto_increment, memo varchar(45), personid int(10) NOT NULL, PRIMARY KEY (ID) (4) 创建hmb.xml文件 (5) 生成POJO类(4)编写测试程序 p1.setName(zhangsan); p1.setIdCard(card1); card1.setPerson(p1); session.save(p1); 3,一对多单向典型场合:一个人对应很多他的电话, 我们一般只要求给定一个人得到他的所有电话,却不会用一个电话去反查一个人,因为电话是很容易改变的(1)建立表CREATE TABLE test.person ( ID int(10) unsigned NOT NULL auto_increment, Name varchar(45) NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.phone ( ID int(10) unsigned NOT NULL auto_increment, number varchar(45) NOT NULL, personid int(10), PRIMARY KEY (ID) (6) 创建hmb.xml文件 (7) 生成POJO类(4)编写测试程序 Person p1=new Person();p1.setName(zhangsan);Set phones = new HashSet(); Phone phone1=new Phone(); phone1.setNumber(12323); Phone phone2=new Phone(); phone2.setNumber(12323); phones.add(phone1); phones.add(phone2); p1.setPhones(phones); session.save(phone1); session.save(phone2); session.save(p1);4,一对多双向典型场合:旅行和预订,一次旅程有多个预订,我们可以根据某次旅程查到这次旅行所对应的预订,也可以根据一次预订查到它所属的那次旅程一对多双向关联映射的方法: * 在“一”一端的集合中使用标签,在对方表中加入一个外键指向“一”一端 * 在“多的一端采用 (1)建立表CREATE TABLE test.person ( ID int(10) unsigned NOT NULL auto_increment, Name varchar(45) NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.flight ( ID int(10) unsigned NOT NULL auto_increment, num varchar(45) NOT NULL, personid int(10), PRIMARY KEY (ID) (8) 创建hmb.xml文件 (9) 生成POJO类(4)编写测试程序 Person p1=new Person();p1.setName(zhangsan);Set flights = new HashSet(); Flight f1= new Flight(); f1.setNum(h222); f1.setPerson(p1); Flight f2=new Flight(); f2.setNum(h333); f2.setPerson(p1); flights.add(f1); flights.add(f2); p1.setFlights(flights); session.save(p1);5,多对一单向典型场合:人民和国家,我们只需要知道我们人民是属于哪个国家的,而国家不可能确实地知道它有多少个人民.(1)建立表CREATE TABLE test.person ( ID int(10) unsigned NOT NULL auto_increment, Name varchar(45) NOT NULL, CountryID int(10) NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.country ( ID int(10) unsigned NOT NULL auto_increment, name varchar(45) NOT NULL, PRIMARY KEY (ID) (10) 创建hmb.xml文件 (11) 生成POJO类(4)编写测试程序 Person p1=new Person(); Country c=new Country(); c.setName(china); p1.setName(zhangsan); p1.setCountry(c); Person p2=new Person(); p2.setName(lisi); p2.setCountry(c); session.save(c); session.save(p1);6,多对多单向典型场合:预定和舱位,你可以多次预定一个舱位,也可一定预定多个舱位.一般都是根据某次预定来知道预定了哪些舱位(1)建立表CREATE TABLE test.person ( ID int(10) unsigned NOT NULL auto_increment, Name varchar(45) NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.flght ( ID int(10) unsigned NOT NULL auto_increment, name varchar(45) NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.person_flight ( personID int(10) NOT NULL , flightid int(10) NOT NULL, PRIMARY KEY (personID,flightID) (12) 创建hmb.xml文件 (13) 生成POJO类(4)编写测试程序 Person p1=new Person(); Person p2=new Person(); Set flights = new HashSet(); Flight f1 = new Flight(2222); Flight f2 = new Flight(2222); flights.add(f1); flights.add(f2); p1.setName(wanger); p2.setName(lius); p1.setFlights(flights); p2.getFlights().add(f2); session.save(f1); session.save(f2); session.save(p1); session.save(p2);7,多对多双向典型场合:老师和学生,老师可以有很多学生,学生也可以有很多老师,可以根据学生查出他所有的老师,也可以根据老师查出他所有的学生(1)建立表CREATE TABLE test.teacher ( ID int(10) unsigned NOT NULL auto_increment, Name varchar(45) NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.student ( ID int(10) unsigned NOT NULL auto_increment, name varchar(45) NOT NULL, PRIMARY KEY (ID) CREATE TABLE test.teacher_student ( teacherid int(10) NOT NULL , studentid int(10) NOT NULL, PRIMARY KEY (teacherid,studentid) (14) 创建hmb.xml文件 (15) 生成POJO类(4)编写测试程序 Teacher t1 = new Teacher(); t1.setName(li1); Teacher t2 = new Teacher(); t2.setName(li2); Student s1 = new Student(); s1.setName(wang1); Student s2 = new Student(); s2.setName(wang2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新版上交所模拟测试题及答案
- 新疆支教面试题目及答案解析(版)
- 材料员考试试题及答案题库大全
- 拆迁应急安抚维稳预案(3篇)
- 寿险营销实战话术
- 沟通在企业管理中的重要作用
- 员工绩效的考核存在的问题及分析
- 人力资源存在的问题与挑战
- 化学课程论考试题及答案
- 餐饮业外卖市场竞争分析报告
- 七年级数学基础知识练习卷
- 风电项目工程分部划分标准
- 2025年全国中小学生天文知识竞赛试题库(含答案)
- OTDR的操作使用课件
- 125w短波电台课件
- 中国民族乐器弦乐器课件
- 老师餐费补贴管理办法
- 物业管理师考试真题及答案
- 2025年农机证理论考试题库
- 知道智慧树电路分析基础(浙江大学)满分测试答案
- 2025 重症医学科感染性休克集束化医学查房课件
评论
0/150
提交评论