收藏 分享(赏)

java标本库管理系统代码.doc

上传人:dreamzhangning 文档编号:2792566 上传时间:2018-09-27 格式:DOC 页数:22 大小:22.86KB
下载 相关 举报
java标本库管理系统代码.doc_第1页
第1页 / 共22页
java标本库管理系统代码.doc_第2页
第2页 / 共22页
java标本库管理系统代码.doc_第3页
第3页 / 共22页
java标本库管理系统代码.doc_第4页
第4页 / 共22页
java标本库管理系统代码.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、java 标本库管理系统代码1/60标本库管理系统是由 java 编写的一套软件系统,它由两部分组成:1、web 部分,客户端是 ie6.0 浏览器2、RCP 部分,用于集中管理标本库一下是 Web 部分的相关代码及配置文件说明:Web 部分基于 SHH 技术(Struts、Spring、Hibernate),并且遵循 MVC设计模式,所以相应的代码也清晰地分成 java 简单原始类、数据库操作类(DAO 层)、业务逻辑类(business),整个 web 系统有很多部分组成,包括 20个包以及相关配置文件、jsp 页面、javascript 脚本等等。下面是代码展示:样本类型枚举类:pack

2、ageorg.scbit.tissuebank.cfg;/*authorwuyifei*version1.0.0*/publicenumTissueStatEnumDISDOCIATION(“dissociation“),STORED(“stored“),LENDED(“lended“),/已入库/ 已出借 RESERVE(“reserve“),/已预定USEUP(“useup“);/已耗尽 privateStringname;this.name=name;/未入库 privateTissueStatEnum(Stringname)publicStringgetName()returnname

3、;持久化类:packageorg.scbit.tissuebank.utils;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.regex.Matcher;importjava.util.regex.Pmons.cli.BasicParser;mons.cli.CommandLine;mons

4、.cli.CommandLineParser;2/mons.cli.HelpFormatter;mons.cli.Option;mons.cli.Options;publicclassDomainPostProcessorjavax.persistence.OrderBy;n“;mons.cli.ParseException;privatefinalstaticStringIMPORT_ORDERBY=“importpublicstaticvoidmain(Stringargs)dpp.run(args);DomainPostProcessordpp=newDomainPostProcesso

5、r();privatevoidrun(Stringargs)Optionsopts=newOptions();opts.addOption(“h“,false,“Printhelpforthiscommandlineopts.addOption(“s“,true,“Java-Source-File-Path“);opts.addOption(“c“,true,tool“);classA,mappedbyB,mappedbyC;classD,mappedbyE“);Optionopt=newOption(“o“,true,“classtoremovemappedby,theformatlikec

6、lassA,relationClassB,OrderByvalue“);opts.addOption(opt);“collectiontoaddorderby,theformatlibopt.setArgs(Option.UNLIMITED_VALUES);CommandLineParserparser=newBasicParser();CommandLinecl=null;trycatch(ParseExceptione)e.printStackTrace();cl=parser.parse(opts,args);/TODOAuto-generatedcatchblockif(cl.hasO

7、ption(“h“)HelpFormatterf=newHelpFormatter();f.printHelp(“OptionsTip“,opts);if(cl.hasOption(“c“)if(cl.hasOption(“o“)addOrderBy(cl);elseif(cl.hasOption(“s“)removeMappedBy(cl);3/60elseHelpFormatterf=newHelpFormatter();f.printHelp(“OptionsTip“,opts);privatevoidaddOrderBy(CommandLinecl)StringsrcPath=cl.g

8、etOptionValue(“s“);for(Stringtarget:targets)Stringtargets=cl.getOptionValues(“o“);Stringtmp=target.split(“;“);FilesrcFile=newFile(srcPath+“/“+tmp0+“.java“);StringsrcStr=readClassFile(srcFile);tmp2.replaceAll(srcStr=orderByPostProcessor(srcStr,tmp1,“_“,“);FiledistFile=newFile(srcPath+“/_“+tmp0+“.java

9、“);saveClassFile(srcStr,distFile);srcFile.delete();distFile.renameTo(srcFile);privateStringreadClassFile(FilesrcFile)BufferedReaderin=null;trycatch(FileNotFoundExceptione)e.printStackTrace();in=newBufferedReader(newFileReader(srcFile);/TODOAuto-generatedcatchblockStrings;tryStringBuildersb=newString

10、Builder();while(s=in.readLine()!=null)in.close();sb.append(s).append(“n“);catch(IOExceptione)e.printStackTrace();/TODOAuto-generatedcatchblockreturnsb.toString();privatevoidsaveClassFile(StringsrcStr,FiledistFile)PrintWriterout=null;try4/60out=newPrintWriter(distFile);/TODOAuto-generatedcatchblocke.

11、printStackTrace();catch(FileNotFoundExceptione)out.print(srcStr);out.flush();out.close();privatevoidremoveMappedBy(CommandLinecl)StringsrcPath=cl.getOptionValue(“s“);for(Stringg:groups)Stringgroups=cl.getOptionValue(“c“).split(“;“);Stringclasses=g.split(“,“);FilesrcFile=newFile(srcPath+“/“+classes0+

12、“.java“);StringsrcStr=readClassFile(srcFile);for(inti=1;iclasses.length;i+)srcStr=mappedByPostProcessor(srcStr,classesi);FiledistFile=newFile(srcPath+“/_“+classes0+“.java“);saveClassFile(srcStr,distFile);srcFile.delete();distFile.renameTo(srcFile);privateStringmappedByPostProcessor(StringsrcStr,Stri

13、ngclassName)StringBuilderdistStr=newStringBuilder();intlastpostion=0;/表达式对象Patternp=Ppile(mappedBy=“.+“)()ns*public.*“(ManyToMany(.+)(,+className+“get“+className/创建 Matcher 对象 Matcherm=p.matcher(srcStr);while(m.find()+“e?s()s)$“,Pattern.MULTILINE);distStr.append(srcStr.substring(lastpostion,m.start(

14、);StringbeginPart=m.group(1);StringendPart=m.group(3);distStr.append(beginPart).append(endPart);5/60lastpostion=m.end();srcStr.length();distStr.append(srcStr.substring(lastpostion,returndistStr.toString();privateStringorderByPostProcessor(StringsrcStr,StringclassName,StringBuildertmpSB=newStringBuil

15、der();intlastpostion=0;StringorderByValue)StringBuilderdistStr=newStringBuilder();/表达式对象 Patternp=Ppile(className“(?:One|Many)ToMany(?:.*)n)(s+publicsList“+“)“,Pattern.MULTILINE);/创建 Matcher 对象Matcherm=p.matcher(srcStr);while(m.find()tmpSB.append(srcStr.substring(lastpostion,m.start();StringbeginPar

16、t=m.group(1);StringendPart=m.group(2);)tmpSB.append(beginPart).append(“OrderBy(“).append(orderByValue.append(“)n“).append(endPart);lastpostion=m.end();tmpSB.append(srcStr.substring(lastpostion,srcStr.length();Pattern.MULTILINE);p=Ppile(“(?:imports.*;n)+)“,StringtmpStr=tmpSB.toString();m=p.matcher(tm

17、pStr);lastpostion=0;while(m.find()distStr.append(tmpStr.substring(lastpostion,m.start();StringbeginPart=m.group(1);distStr.append(beginPart);if(beginPart.indexOf(IMPORT_ORDERBY)=-1)lastpostion=m.end();distStr.append(IMPORT_ORDERBY);tmpStr.length();distStr.append(tmpStr.substring(lastpostion,6/60retu

18、rndistStr.toString();安全设置类:packageorg.scbit.tissuebank.utils;publicclassRandomUtilsfinalstaticStringstrTable“0123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz“;publicstaticStringgetRandomString(intintLength)StringretStr;intlen=strTable.length();booleanbDone=true;doretStr=“;intcount=0;for(in

19、ti=0;iintLength;i+)doubledblR=Math.random()*len;intintR=(int)Math.floor(dblR);charc=strTable.charAt(intR);if(0=c)(c=9)count+;retStr+=strTable.charAt(intR);if(count=2)bDone=false;while(bDone);returnretStr;packageorg.scbit.tissuebank.ws.interceptor;importjavax.servlet.http.HttpServletRequest;importorg

20、.apache.cxf.interceptor.Fault;importorg.apache.cxf.message.Message;importorg.apache.cxf.phase.AbstractPhaseInterceptor;importorg.apache.cxf.phase.Phase;importorg.apache.cxf.transport.http.AbstractHTTPDestination;importorg.scbit.tissuebank.web.interceptor.LoginInterceptor;importorg.springframework.st

21、ereotype.Component;Component(“AuthenticationAndAuthorizationInterceptor“)publicclassAuthenticationAndAuthorizationInterceptorextendsAbstractPhaseInterceptorMessage=7/60publicAuthenticationAndAuthorizationInterceptor()super(Phase.PRE_PROTOCOL);publicAuthenticationAndAuthorizationInterceptor(Strings)s

22、uper(Phase.PRE_PROTOCOL);OverridepublicvoidhandleMessage(Messagearg0)throwsFaultHttpServletRequestrequest=(HttpServletRequest)arg0.getContextualProperty(AbstractHTTPDestination.HTTP_REQUEST);Objectuser=request.getSession().getAttribute(LoginInterceptor.USER_HANDLE);if(user=null)thrownewRuntimeExcept

23、ion(“InvalidAuthentication“);异常处理类:packageorg.scbit.tissuebank.service.exception;publicclassUniquePropertyAlreadyExistExceptionextendsRuntimeExceptionpublicUniquePropertyAlreadyExistException()publicUniquePropertyAlreadyExistException(Stringmessage)super(message);publicUniquePropertyAlreadyExistExce

24、ption(Stringdomain,Stringproperty)this(domain+“.“+property);publicUniquePropertyAlreadyExistException(Stringmessage,Throwablecause)super(message,cause);publicUniquePropertyAlreadyExistException(Stringdomain,Stringproperty,Throwablecause)this(domain+“.“+property,cause);WebSerive 类:packageorg.scbit.ti

25、ssuebank.ws;importjava.util.List;8/60importjavax.jws.WebService;importorg.scbit.tissuebank.domain.Icecontainer;WebServicepublicinterfaceISpaceManagerListIcecontainerlistIcecontainerInHouse(IntegerhouseId);空间 WebService 执行类:packageorg.scbit.tissuebank.ws.impl;importjava.util.List;importjavax.annotati

26、on.Resource;importjavax.jws.WebService;importjavax.servlet.http.HttpServletRequest;importjavax.xml.ws.WebServiceContext;importjavax.xml.ws.handler.MessageContext;importorg.apache.cxf.transport.http.AbstractHTTPDestination;importorg.scbit.tissuebank.domain.Icecontainer;importorg.scbit.tissuebank.doma

27、in.House;importorg.scbit.tissuebank.ws.ISpaceManager;WebService(endpointInterface=“org.scbit.tissuebank.ws.ISpaceManager“)publicclassSpaceManagerImplimplementsISpaceManagerResourceprivateWebServiceContextcontext;OverridepublicListIcecontainerlistIcecontainerInHouse(IntegerhouseId)/Icecontainerice=ne

28、wIcecontainer();System.out.println(“);MessageContextctx=context.getMessageContext();HttpServletRequestrequest=(HttpServletRequest)ctx.get(AbstractHTTPDestination.HTTP_REQUEST);System.out.println(request.getSession();/return“Hello“+text;Househouse=newHouse();returnhouse.getIcecontainers();/returnnull

29、;基本 DAO 类:packageorg.scbit.tissuebank.dao;importjava.lang.reflect.ParameterizedType;importjava.lang.reflect.Type;9/60importjava.util.List;importjavax.persistence.EntityManager;importjavax.persistence.PersistenceContext;importorg.hibernate.Criteria;importorg.hibernate.Session;importorg.hibernate.crit

30、erion.DetachedCriteria;importorg.hibernate.criterion.Projections;importorg.hibernate.ejb.EntityManagerImpl;importorg.scbit.tissuebank.dao.exception.EntityNotFoundException;importorg.springframework.transaction.annotation.Transactional;TransactionalpublicclassBaseDAOT/T.classprivateClassTentityClass;

31、PersistenceContext(unitName=“tissueBank“)protectedEntityManagerem;SuppressWarnings(“unchecked“)publicBaseDAO()Typetype=getClass().getGenericSuperclass();if(typeinstanceofParameterizedType)ParameterizedTypept=(ParameterizedType)type;type=pt.getActualTypeArguments()0;entityClass=(ClassT)type;publicvoi

32、dpersist(Tt)em.persist(t);publicTmerge(Tt)returnem.merge(t);publicvoidremove(Objectid)throwsEntityNotFoundExceptionTt=find(id);if(t!=null)em.remove(t);elsethrownewEntityNotFoundException(id.toString();publicTfind(Objectid)returnem.find(entityClass,id);/*使用 Hql 查询的的分页查询类.10/60*支持执行 Count 查询取得总记录条数*用户

33、在 web 层构造查询条件 detachedCriteria,和可选的startIndex,调用业务 bean 的相应 findByCriteria 方法,返回一个PaginationSupport 的实例 ps。*ps.getItems()得到已分页好的结果集*ps.getIndexes()得到分页索引的数组*ps.getTotalCount()得到总结果数*ps.getStartIndex()当前分页索引*ps.getNextIndex()下一页索引*ps.getPreviousIndex()上一页索引*/SuppressWarnings(“unchecked“)publicPaginat

34、ionSupportTfindPageByCriteria(finalDetachedCriteriadetachedCriteria,finalintpageSize,finalintstartIndex)Sessionsession;trysession=(Session)em.getDelegate();catch(ClassCastExceptione)thrownewNoHibernateSupportException(“TheMethodfindPageByCriterianeedhibernatesupport.“);Criteriacriteria=detachedCrite

35、ria.getExecutableCriteria(session);/*以查询 getCountByCriteria 的形式获取 totalCount 的值*/inttotalCount=(Integer)criteria.setProjection(Projections.rowCount().uniqueResult().intValue();criteria.setProjection(null);ListTitems=criteria.setFirstResult(startIndex).setMaxResults(pageSize).list();PaginationSupport

36、Tps=newPaginationSupportT(items,totalCount,pageSize,startIndex);returnps;publicPaginationSupportTfindPageByCriteria(finalDetachedCriteriadetachedCriteria)returnfindPageByCriteria(detachedCriteria,PaginationSupport.PAGESIZE,0);publicPaginationSupportTfindPageByCriteria(finalDetachedCriteriadetachedCr

37、iteria,finalintstartIndex)returnfindPageByCriteria(detachedCriteria,PaginationSupport.PAGESIZE,startIndex);11/60SuppressWarnings(“unchecked“)publicListTfindAllByCriteria(finalDetachedCriteriadetachedCriteria)if(eminstanceofEntityManagerImpl)Criteriacriteria=detachedCriteria.getExecutableCriteria(Ent

38、ityManagerImpl)em).getSession();returncriteria.list();elsethrownewNoHibernateSupportException(“TheMethodfindAllByCriterianeedhibernatesupport.“);publicintgetCountByCriteria(finalDetachedCriteriadetachedCriteria)Sessionsession;trysession=(Session)em.getDelegate();catch(ClassCastExceptione)thrownewNoH

39、ibernateSupportException(“TheMethodfindPageByCriterianeedhibernatesupport.“);Criteriacriteria=detachedCriteria.getExecutableCriteria(session);Integercount=(Integer)criteria.setProjection(Projections.rowCount().uniqueResult();returncount.intValue();packageorg.scbit.tissuebank.utils;importjava.io.Buff

40、eredReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.regex.Matcher;importjava.util.regex.Pattern;mons.cli.BasicParser;mons.cli.CommandLine;mons.cli.CommandLineParser;mons.cli.HelpFormatter;mons.

41、cli.Option;mons.cli.Options;mons.cli.ParseException;publicclassDomainPostProcessor12/60privatefinalstaticStringIMPORT_ORDERBY=“importjavax.persistence.OrderBy;n“;publicstaticvoidmain(Stringargs)DomainPostProcessordpp=newDomainPostProcessor();dpp.run(args);privatevoidrun(Stringargs)Optionsopts=newOpt

42、ions();opts.addOption(“h“,false,“Printhelpforthiscommandlinetool“);opts.addOption(“s“,true,“Java-Source-File-Path“);opts.addOption(“c“,true,“classtoremovemappedby,theformatlikeclassA,mappedbyB,mappedbyC;classD,mappedbyE“);Optionopt=newOption(“o“,true,“collectiontoaddorderby,theformatlibclassA,relati

43、onClassB,OrderByvalue“);opt.setArgs(Option.UNLIMITED_VALUES);opts.addOption(opt);CommandLineParserparser=newBasicParser();CommandLinecl=null;trycl=parser.parse(opts,args);catch(ParseExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();if(cl.hasOption(“h“)HelpFormatterf=newHelpFormatter();f.pr

44、intHelp(“OptionsTip“,opts);elseif(cl.hasOption(“s“)if(cl.hasOption(“c“)removeMappedBy(cl);if(cl.hasOption(“o“)addOrderBy(cl);elseHelpFormatterf=newHelpFormatter();f.printHelp(“OptionsTip“,opts);privatevoidaddOrderBy(CommandLinecl)13/60StringsrcPath=cl.getOptionValue(“s“);Stringtargets=cl.getOptionVa

45、lues(“o“);for(Stringtarget:targets)Stringtmp=target.split(“;“);FilesrcFile=newFile(srcPath+“/“+tmp0+“.java“);StringsrcStr=readClassFile(srcFile);srcStr=orderByPostProcessor(srcStr,tmp1,tmp2.replaceAll(“_“,“);FiledistFile=newFile(srcPath+“/_“+tmp0+“.java“);saveClassFile(srcStr,distFile);srcFile.delet

46、e();distFile.renameTo(srcFile);privateStringreadClassFile(FilesrcFile)BufferedReaderin=null;tryin=newBufferedReader(newFileReader(srcFile);catch(FileNotFoundExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();Strings;StringBuildersb=newStringBuilder();trywhile(s=in.readLine()!=null)sb.append

47、(s).append(“n“);in.close();catch(IOExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();returnsb.toString();privatevoidsaveClassFile(StringsrcStr,FiledistFile)PrintWriterout=null;tryout=newPrintWriter(distFile);catch(FileNotFoundExceptione)/TODOAuto-generatedcatchblocke.printStackTrace();out.print(srcStr);14/60out.flush();out.close();privatevoidremoveMappedBy(CommandLinecl)StringsrcPath=cl.getOptionValue(“s“);Stringgroups=cl.getOptionValue(“c“).split(“;“);for(Stringg:groups)Stringclasses=g.split(“,“);FilesrcFile=newF

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报