




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年安徽省合肥市《考评员》专业技能鉴定考试题库与答案
- 2025年保险代理人资格竞赛试题库(附含答案)
- 2024年道路运输安全员理论及法律知识考试题(附含答案)
- 陕西省西安市雁塔区2024-2025学年八年级下学期期末语文试题(解析版)
- 酶学分析技术试题及答案
- 2025标准企业借款合同范本
- 2025法律法规重点关注:合同条款中的“约定”风险管理 guide
- 2025年关于房屋租赁合同模板
- 2025典当借款合同规范模板
- 摄影专业基础知识培训课件
- 医院防溺水急救培训课件
- 餐饮业员工的培训方案
- 兽医局面试题及答案
- 消化道出血课件
- nginx面试题及答案100道
- 2024西门子消防火灾自动报警及消防联动控制系统产品手册
- 美团BD岗前培训
- 全套课件-计算机基础
- 2025年上半年银行工作总结标准版本(8篇)
- 《杰出店长培训》课件
- 2024年09月2024中国银行中银国际证券股份有限公司校园招聘38人笔试历年参考题库附带答案详解
评论
0/150
提交评论