已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六讲 数据库连接和Hibernate (三)Hibernate开发实例,内容安排,MyEclipse 开发Hibernate过程 三种映射关系实例,MyEclipse 开发Hibernate过程,创建Web/JAVA 工程 增加Hibernate功能 MyEclipse-Add Hibernate Capabilities,确定数据库连接细节 需要实现创建DB Driver Window-Show View-Other-DB Browser,生成Hibernate.cfg.xml,Hibernate反向工程,生成映射文件和类文件,Addr.hbm.xml AbstractAddr.java Addr.java AddrDAO.java,一对一关联,Userinfo表结构,create table USERINFO ( USERID VARCHAR2(20) not null, USERNAME VARCHAR2(20), AGE VARCHAR2(20), ADDRID VARCHAR2(20), PRIMARY KEY (USERID ), CONSTRAINT addrid FOREIGN KEY (ADDRID) REFERENCES addr (ADDRID) ),Addr表结构,create table ADDR ( ADDRID VARCHAR2(20) not null, LOCATION VARCHAR2(20), POSTCODE VARCHAR2(20), PRIMARY KEY (ADDRID) ),Addr POJO,public class Addr implements java.io.Serializable / Fields private String addrid; private String location; private String postcode; ,Addr映射描述,Userinfo POJO,public class Userinfo implements java.io.Serializable / Fields private String userid; private Addr addr; private String username; private String age; ,Userinfo映射文件描述,关联查询,Session session = HibernateSessionFactory.getSession(); Userinfo u = (Userinfo)session.load(Userinfo.class,“1001“); System.out.println(u.getUsername(); System.out.println(u.getAddr().getLocation(); HibernateSessionFactory.closeSession();,关联保存,Userinfo u = new Userinfo(); u.setUserid(“1002“); u.setUsername(“JONES“); u.setAge(“26“); /级联保存addr的信息,而不再需要单独save方法,hibernate会自动save addr的信息 Addr addr = new Addr(); addr.setAddrid(“SHANGHAI002“); addr.setLocation(“BAOSHANLU“); addr.setPostcode(“200852“); u.setAddr(addr); Transaction t = session.beginTransaction(); session.save(u); mit();,多对一关联,多对一表结构,create table EMPLOYEE ( EMPID VARCHAR2(50) not null, ENAME VARCHAR2(20), SAL VARCHAR2(20), JOB VARCHAR2(20), DEPTID VARCHAR2(20) ); create table DEPARTMENT ( DEPTID VARCHAR2(50) not null, DNAME VARCHAR2(20), LOCATION VARCHAR2(20) );,Department.hbm.xml, 或: ,Department.java,private String deptid; private String dname; private String location; private Set emps; public Set getEmps() return emps; public void setEmps(Set emps) this.emps = emps; ,Employee.hbm.xml, 或 ,Employee.java,private String empid; private String ename; private String sal; private String job; private Department dept; public Department getDept() return dept; public void setDept(Department dept) this.dept = dept; ,级联保存,Session s = HibernateSessionFactory.getSession(); Department d = new Department(); d.setDeptid(“1001“); d.setDname(“R,级联删除,Session s = HibernateSessionFactory.getSession(); Department d = new Department(); d.setDeptid(“1001“); Set emps = new HashSet(); Employee e1 = new Employee(“7001“); Employee e2 = new Employee(“7002“); Employee e3 = new Employee(“7003“); emps.add(e1); emps.add(e2); emps.add(e3); d.setEmps(emps); Transaction t = s.beginTransaction(); s.delete(d); mit(); HibernateSessionFactory.closeSession();,级联查询,Session s = HibernateSessionFactory.getSession(); Query q = s.createQuery(“select e from Employee e where e.empid=7001“); List list = q.list(); for(int i=0;ilist.size();i+) Employee e = (Employee)list.get(i); Department d = e.getDept(); System.out.println(d.getDname(); HibernateSessionFactory.closeSession();,多对多关联,多对多表结构,create table COURSE ( COURID VARCHAR2(50) not null primary key, COURNAME VARCHAR2(20) ); create table STUDENT ( STUID VARCHAR2(50) not null primary key, STUNAME VARCHAR2(20) ); create table STUCOUR ( STUID VARCHAR2(50) not null, COURID VARCHAR2(50) not null );,Student.java,private String stuid; private String stuname; private Set cours;,Course.java,private String courid; private String courname; private Set stus;,Stucour.java,private StucourId id;,主键类StucourId,private String stuid; private String courid;,Student.xml,Course.hbm.xml,级联保存,Session s = HibernateSessionFactory.getSession(); Student stu = new Student(); stu.setStuid(“1002“); stu.setStuname(“zhangshan“); Set cours = new HashSet(); Course c1 = new Course(“9001“,“English“); Course c2 = new Course(“9002“,“phylisc“); cours.add(c1); cours.add(c2); stu.setCours(cours); Transaction t = s.beginTransaction(); s.save(stu); mit(); HibernateSessionFactory.closeSession();,级联查询,Session s = HibernateSessionFactory.getSession(); Student stu = new Student(); stu = (Student)s.get(Student.class, “1001“); System.out.println(stu.getStuid()+“:“+stu.getStuname(); Set cours = stu.getCours(); Iterator it = cours.iterator(); while(it.hasNext() Course c = (Course)it.next(); System.out.println(c.getCourname(); HibernateSessionFactory.closeSession();,删除学生,Session s = HibernateSessionFactory.getSession(); Student stu = new Student(); stu.setStuid(“1001“); Transaction t = s.beginTransaction(); s.delete(stu); mit(); HibernateSessionFactory.closeSession(); 自动删除关联表中的信息,删除学生及关联课程,在删除学生信息的同时,删除关联课程信息 Session s = HibernateSessionFactory.getSession(); Student stu = new Student(); stu.setStuid(“1001“); Set cours = new HashSet(); Course c1 = new Course(“9001“); Course c2 = new Course(“9002“); cours.add(c1); cours.add(c2); stu.setCours(cours); Transaction t = s.beginTransaction(); s.delete(stu); mit(); HibernateSessionFactory.closeSession();,删除学生及关联课程,删除学生信息,同时查询该学生对应的所有课程信息,一并删除 Session s = HibernateSessionFactory.getSession(); Student stu = new Student(); stu.setStuid(“1001“); Query q = s.createQuery(“select c from Course c,Stucour sc “ + “wh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026-2031年中国三维数字化行业市场动态分析及发展趋势研判报告
- 木材制作合同协议书
- 广告设计创意培训学员试题及答案
- 2026-2031年中国农产品物流行业发展前景及投资战略预测咨询报告
- 铺面卖买定金合同范本
- 木地板装修合同协议
- 防护栏生产合同协议书
- 2026-2031全球及中国固体器官移植免疫抑制剂行业发展现状调研及投资前景分析报告
- 基于杠杆原理的翼型气动补偿高速受电弓关键技术研究
- 模板租赁专卖合同范本
- 兄弟套结机KE-430F中文使用说明书
- 江苏入团考试试题及答案2025年
- 医院消防演练方案及流程
- (2025)全国企业员工全面质量管理知识竞赛测试题及参考答案
- 2025年中小学生读书知识竞赛题库及答案
- 食盐质量安全考试题库及答案解析
- 水文课件资料
- 数据安全介绍培训课件
- 茶百道企业介绍
- 《多元统计分析》(第6版) 课件 第3章 聚类分析
- 心理学视角下的人际冲突及沟通技巧指导分析和解决预案
评论
0/150
提交评论