《java标本库管理系统代码》由会员分享,可在线阅读,更多相关《java标本库管理系统代码(60页珍藏版)》请在金锄头文库上搜索。
1、1/60标本库管理系统是由 java 编写的一套软件系统,它由两部分组成: 1、web 部分,客户端是 ie6.0 浏览器 2、RCP 部分,用于集中管理标本库 一下是 Web 部分的相关代码及配置文件说明: Web 部分基于 SHH 技术(Struts、Spring、Hibernate),并且遵循 MVC 设计模式,所以相应的代 码也清晰地分成 java 简单原始类、数据库操作类(DAO 层)、业务逻辑类(business),整个 web 系统有很多部分组成,包括 20 个包以及相关配置文件、jsp 页面、javascript 脚本等等。下面 是代码展示:样本类型枚举类: package o
2、rg.scbit.tissuebank.cfg;/* author wuyifei* version 1.0.0*/public enum TissueStatEnum DISDOCIATION(“dissociation“),/未入库STORED(“stored“),/ 已入库RESERVE(“reserve“), / 已预定LENDED(“lended“),/ 已出借USEUP(“useup“);/ 已耗尽 private String name;private TissueStatEnum(String name) this.name = name;public String getNa
3、me() return name;持久化类: package org.scbit.tissuebank.utils;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;import java.util.regex.Matcher;import java.util.regex.Patternimport mons.cl
4、i.BasicParser;import mons.cli.CommandLine;import mons.cli.CommandLineParser;2/60import mons.cli.HelpFormatter;import mons.cli.Option;import mons.cli.Options;import mons.cli.ParseException;public class DomainPostProcessor private final static String IMPORT_ORDERBY = “importjavax.persistence.OrderBy;n
5、“;public static void main(String args) DomainPostProcessor dpp = new DomainPostProcessor();dpp.run(args);private void run(String args) Options opts = new Options();opts.addOption(“h“, false, “Print help for this command linetool“);opts.addOption(“s“, true, “Java-Source-File-Path“);opts.addOption(“c“
6、,true,“class to remove mappedby,the format likeclassA,mappedbyB,mappedbyC;classD,mappedbyE“);Option opt = new Option(“o“, true,“collection to add orderby,the format libclassA,relationClassB,OrderBy value“);opt.setArgs(Option.UNLIMITED_VALUES);opts.addOption(opt);CommandLineParser parser = new BasicP
7、arser();CommandLine cl = null;try cl = parser.parse(opts, args); catch (ParseException e) / TODO Auto-generated catch blocke.printStackTrace();if (cl.hasOption(“h“) HelpFormatter f = new HelpFormatter();f.printHelp(“OptionsTip“, opts); else if (cl.hasOption(“s“) if (cl.hasOption(“c“)removeMappedBy(c
8、l);if (cl.hasOption(“o“)addOrderBy(cl);3/60 else HelpFormatter f = new HelpFormatter();f.printHelp(“OptionsTip“, opts);private void addOrderBy(CommandLine cl) String srcPath = cl.getOptionValue(“s“);String targets = cl.getOptionValues(“o“);for (String target : targets) String tmp = target.split(“;“)
9、;File srcFile = new File(srcPath + “/“ + tmp0 + “.java“);String srcStr = readClassFile(srcFile);srcStr = orderByPostProcessor(srcStr, tmp1,tmp2.replaceAll(“_“, “ “);File distFile = new File(srcPath + “/_“ + tmp0 + “.java“);saveClassFile(srcStr, distFile);srcFile.delete();distFile.renameTo(srcFile);p
10、rivate String readClassFile(File srcFile) BufferedReader in = null;try in = new BufferedReader(new FileReader(srcFile); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();String s;StringBuilder sb = new StringBuilder();try while (s = in.readLine() != null)sb.append(
11、s).append(“n“);in.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();return sb.toString();private void saveClassFile(String srcStr, File distFile) PrintWriter out = null;try 4/60out = new PrintWriter(distFile); catch (FileNotFoundException e) / TODO Auto-generated ca
12、tch blocke.printStackTrace();out.print(srcStr);out.flush();out.close();private void removeMappedBy(CommandLine cl) String srcPath = cl.getOptionValue(“s“);String groups = cl.getOptionValue(“c“).split(“;“);for (String g : groups) String classes = g.split(“,“);File srcFile = new File(srcPath + “/“ + c
13、lasses0 + “.java“);String srcStr = readClassFile(srcFile);for (int i = 1; i get“ + className+ “e?s()s)$“, Pattern.MULTILINE);/ 创建 Matcher 对象 Matcher m = p.matcher(srcStr);while (m.find() distStr.append(srcStr.substring(lastpostion, m.start();String beginPart = m.group(1);String endPart = m.group(3);
14、distStr.append(beginPart).append(endPart);5/60lastpostion = m.end();distStr.append(srcStr.substring(lastpostion,srcStr.length();return distStr.toString();private String orderByPostProcessor(String srcStr, String className,String orderByValue) StringBuilder tmpSB = new StringBuilder();StringBuilder d
15、istStr = new StringBuilder();int lastpostion = 0;/ 表达式对象 Pattern p = Ppile(“(?:One|Many)ToMany(?:.*)n)(s+publicsList)“, Pattern.MULTILINE);/ 创建 Matcher 对象 Matcher m = p.matcher(srcStr);while (m.find() tmpSB.append(srcStr.substring(lastpostion, m.start();String beginPart = m.group(1);String endPart = m.group(2);tmpSB.append(beginPart).append(“OrderBy(“).append(orderByValue).append(“)n“).append(endPart);lastpostion = m.end();tmpSB.append(srcStr.substring(lastpostion, srcStr.length();p = Ppile(“(?:imports.*;n)+)“,Pattern.MULTILINE);String tmp