




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料目 录1.1在容器外实现hibernate框架继承映射关系及实例(第2部分)21.1.1应用单元测试技术测试本实例的应用效果21.1.2体验hibernate中lazy技术91.1.3体验多态查询技术的应用101.1.4进一步完善本项目的实例111.1 在容器外实现hibernate框架继承映射关系及实例(第2部分)1.1.1 应用单元测试技术测试本实例的应用效果1、增加一个dao的接口derivedhibernatedaointerface包名称为er在该接口中添加下面的方法pac
2、kage er;import org.hibernate.hibernateexception;public interface derivedhibernatedaointerface public boolean dofindallpersoninfo() throws hibernateexception;2、提供对该方法的实现类derivedhibernatedaoimple包名称为com.px1987.sshwebcrm.dao.implepackage com.px1987.sshwebcrm.dao.imple;import
3、 java.util.arraylist;import java.util.list;import mons.logging.log;import mons.logging.logfactory;import org.hibernate.hibernateexception;import org.hibernate.session;import org.hibernate.transaction;import er.derivedhibernatedaointerface;import com.px1987.sshwebcrm.dao.p
4、object.abstractpersonpo;import com.px1987.sshwebcrm.dao.pobject.studentpo;import com.px1987.sshwebcrm.dao.pobject.teacherpo;import com.px1987.sshwebcrm.dao.util.hibernateutil;public class derivedhibernatedaoimple implements derivedhibernatedaointerface private static log log = logfactory.getlog(deri
5、vedhibernatedaoimple.class);public derivedhibernatedaoimple() public boolean dofindallpersoninfo() throws hibernateexception session session=null;transaction tx=null;list findresults = new arraylist();try session = hibernateutil.currentsession();tx = session.begintransaction();list allstudentinfo =
6、session.createquery("from com.px1987.sshwebcrm.dao.pobject.studentpo").list();findresults.addall(allstudentinfo);list allteacherinfo =session.createquery("from com.px1987.sshwebcrm.dao.pobject.teacherpo").list();findresults.addall(allteacherinfo); printallpersoninfo(findresults);
7、 mit();catch (hibernateexception he) log.error("在dofindallpersoninfo方法中出现了hibernateexception错误", he);throw he;finally hibernateutil.closesession();return true;private void printallpersoninfo (java.util.list allpersonlist) /利用该方法实现数据显示 java.util.iterator iterator= allpersonlist.iterator();
8、while(iterator.hasnext() abstractpersonpo oneperson=(abstractpersonpo)iterator.next(); if(oneperson instanceof studentpo) int departmentid=(studentpo)oneperson).getdepartment().getid(); string departmentname=(studentpo)oneperson).getdepartment().getdepname(); int studentid=(studentpo)oneperson).geti
9、d(); string studentname=(studentpo)oneperson).getpersonname(); int studentlevel=(studentpo)oneperson).getstudentlevel (); string studentmajor=(studentpo)oneperson).getstudentmajor(); system.out.print("departmentid="+departmentid+"t"); system.out.print("departmentname="+
10、departmentname+"t"); system.out.print("studentid="+studentid+"t"); system.out.print("studentname="+studentname+"t"); system.out.print("studentlevel="+studentlevel+"n"); system.out.print("studentmajor="+studentmajor+"
11、;n"); else int departmentid=(teacherpo)oneperson).getdepartment().getid(); string departmentname=(teacherpo)oneperson).getdepartment().getdepname(); int teacherid=(teacherpo)oneperson).getid(); string teachername=(teacherpo)oneperson).getpersonname(); string coursename=(teacherpo)oneperson).get
12、coursename(); float teachermonthsalary=(teacherpo)oneperson).getmonthsalary(); system.out.print("departmentid="+departmentid+"t"); system.out.print("departmentname="+departmentname+"t"); system.out.print("teacherid="+teacherid+"t"); system.
13、out.print("teachername="+teachername+"t"); system.out.print("teachermonthsalary="+teachermonthsalary+"n"); system.out.print("coursename="+coursename+"n"); 3、添加测试用例testderivedhibernatedaoimple包名称为com.px1987.hexample.dao.test,被测试类为derivedhibe
14、rnatedaoimple在测试用例中对该方法进行测试package com.px1987.hexample.dao.test;import junit.framework.assert;import org.junit.afterclass;import org.junit.beforeclass;import org.junit.test;import com.px1987.sshwebcrm.dao.imple.derivedhibernatedaoimple;import er.derivedhibernatedaointerfa
15、ce;public class testderivedhibernatedaoimple static derivedhibernatedaointerface onederivedhibernatedaobean=null;beforeclasspublic static void setupbeforeclass() throws exception onederivedhibernatedaobean=new derivedhibernatedaoimple();afterclasspublic static void teardownafterclass() throws except
16、ion onederivedhibernatedaobean=null;testpublic void testdofindallpersoninfo() boolean actualreturn=onederivedhibernatedaobean.dofindallpersoninfo();assert.asserttrue(actualreturn);4、执行测试用例将出现下面的结果1.1.2 体验hibernate中lazy技术如果将对department表的访问代码(也就是上面的黑体部分)除掉,然后再次执行,将发现没有对department表进行查询,因为hibernate缺省时是采
17、用 lazy加载的-只在真正需要该数据时,才加载所关联的数据。1.1.3 体验多态查询技术的应用将dao中的hql语句改变为下面的形式list allstudentinfo = session.createquery("from com.px1987.sshwebcrm.dao.pobject.studentpo").list();findresults.addall(allstudentinfo);list allteacherinfo =session.createquery("from com.px1987.sshwebcrm.dao.pobject.tea
18、cherpo").list();list allstudentinfo =session.createquery("from com.px1987.sshwebcrm.dao.pobject.abstractpersonpo").list();findresults.addall(allstudentinfo);观察执行的结果是否与前面的采用两条hql语句的效果相同。1.1.4 进一步完善本项目的实例1、在dao组件中再增加一个doinsertallpersoninfo方法以实现保存数据的功能2、修改derivedhibernatedaointerfacepack
19、age er;import org.hibernate.hibernateexception;public interface derivedhibernatedaointerface public boolean dofindallpersoninfo() throws hibernateexception;public boolean doinsertallpersoninfo() throws hibernateexception ;3、修改实现类代码示例public boolean doinsertallpersoninfo()
20、throws hibernateexception session session=null;transaction tx=null;try session = hibernateutil.currentsession();tx = session.begintransaction(); studentpo onestudent=new studentpo();onestudent.setpersonname("zhao");onestudent.setstudentlevel(4);onestudent.setstudentmajor("计算机应用")
21、; int departmentid=1;departmentpo onedepartment=(departmentpo)session.load(departmentpo.class,new integer(departmentid); onestudent.setdepartment(onedepartment); session.save(onestudent); mit();catch (hibernateexception he) log.error("在doinsertallpersoninfo方法中出现了hibernateexception错误", he);
22、throw he;finally hibernateutil.closesession();return true;4、修改测试用例package com.px1987.hexample.dao.test;import java.io.unsupportedencodingexception;import junit.framework.assert;import org.hibernate.hibernateexception;import org.junit.afterclass;import org.junit.beforeclass;import org.junit.test;import com.px1987.sshwebcrm.dao.imple.derivedhibernatedaoimple;import er.derivedhibernatedaoi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三方场地合同协议范本
- 村内树木种植合同协议书
- 江苏羊场出租合同协议书
- 股份合伙人协议合同模板
- 电动滑板车合作协议合同
- 电商直播带货合同协议书
- 股份融资协议书范本合同
- 海员如何签长期合同协议
- 门店安装天花机合同范本
- 杉木购买转让合同协议书
- 深静脉导管上机及下机评分标准
- JJF 1221-2009汽车排气污染物检测用底盘测功机校准规范
- GB/T 6109.2-2008漆包圆绕组线第2部分:155级聚酯漆包铜圆线
- GB/T 5359.1-2019摩托车和轻便摩托车术语第1部分:车辆类型
- GB/T 17434-2008船用耐火窗技术条件
- GB 11930-1989操作开放型放射性物质的辐射防护规定
- 环网柜基础知识课程课件
- 中小学班主任工作手册(修订)
- 育婴员中级近年考试真题汇总(含答案)
- 北师大版三年级数学下册《第6单元认识分数课时1》课堂教学课件PPT小学公开课
- 99S203 消防水泵接合器安装图集
评论
0/150
提交评论