信息采集系统_第1页
信息采集系统_第2页
信息采集系统_第3页
信息采集系统_第4页
信息采集系统_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

吉首大学信息科学与工程学院10级计算机科学与技术课程设计电信运营支撑系统-信息采集系统班级:计科一班指导老师:杰普-郭苗小组名称:“HelloWorld”姓名学号组长曾亚菲20104042011组员肖行20104042057组员陈高20104042001组员戴盛20104042009组员陈照希20104042007组员张英杰20104042051组员吴江伟20104042059组员寻天梁20104042003组员高其显20104042067组员周云林20104042021设计目的培养学生综合运用所学理论知识分析和解决实际问题的能力。锻炼学生的独立工作能力,也是对前期理论与实践教学效果的检验。通过课程设计使学生对信息采集系统的知识有全面的掌握和应用,对管理信息系统设计有初步的认识。二.设计内容运用所学的知识设计一个信息采集系统三・设计平台Java编译平台,Oracle数据库设计过程BackUPImpl类:packagecom.briup.util.impl;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.util.Properties;importcom.briup.util.BackUP;publicclassBackUPImplimplementsBackUP{privateStringparent="back_temp";@Overridepublicvoidinit(Propertiesproperties){//TODOAuto-generatedmethodstub}@Overridepublicvoidstore(Stringkey,Objectdata,booleanflag)throwsException{//TODOAuto-generatedmethodstubFilefile=newFile(parent);if(!file.exists()){file.mkdir();}Filef2=newFile(file,key);FileOutputStreamfos=newFileOutputStream(f2,flag);ObjectOutputStreamoos=newObjectOutputStream(fos);oos.writeObject(data);oos.close();fos.close();}@OverridepublicObjectload(Stringkey,booleanflag)throwsException{//TODOAuto-generatedmethodstubFilefile=newFile(parent);if(!file.exists()){returnnull;}Filef2=newFile(file,key);if(!f2.exists()){returnnull;}FileInputStreamfis=newFileInputStream(f2);ObjectInputStreamois=newObjectInputStream(fis);Objectdata=ois.readObject();ois.close();fis.close();if(flag==BackUP.LOAD_REMOVE){f2.delete();}returndata;}publicstaticvoidmain(String[]args)throwsException{//BackUPImplback=newBackUPImpl();//back.store("a.txt",”成功不?",BackUP.STORE_OVERRIDE);//Objectobj=back.load("a.txt”,BackUP.LOAD_REMOVE);//System.out.println(obj);}}ServerImpl类:packagecom.briup.woss.server.impl;importjava.io.IOException;importjava.io.ObjectInputStream;.ServerSocket;.Socket;importjava.util.Collection;importjava.util.Properties;importcom.briup.util.BIDR;importcom.briup.util.BackUP;importcom.briup.util.impl.BackUPImpl;importcom.briup.woss.server.Server;publicclassServerImplimplementsServer{privateintport=8899;privateBackUPback=newBackUPImpl();privateServerSocketss=null;@Overridepublicvoidinit(Propertiesproperties){//TODOAuto-generatedmethodstub}@Overridepublicvoidrevicer()throwsException{//TODOAuto-generatedmethodstubss=newServerSocket(port);Sockets=ss.accept();ObjectInputStreamois=newObjectInputStream(s.getInputStream());Collection<BIDR>col=(Collection<BIDR>)ois.readObject();//把之前发送失败并保存在serverBack文件,读到obj类中(在读取数据同时,保留备份文件。)Objectobj=back.load("serverBack”,BackUP.LOAD_UNREMOVE);if(obj!=null)(Collection<BIDR>col2=(Collection<BIDR>)obj;col.addAll(col2);}//数据入库try{System.out.println("开始入库。。。。");newDBStoreImpl().saveToDB(col);System.out.println("入库结束。。。。");}catch(Exceptione){e.printStackTrace();//把发送失败的数据备份到serverBack文件(在保存数据时,覆盖原来的文件。)back.store("serverBack",col,BackUP.STORE_OVERRIDE);}ois.close();s.close();}@Overridepublicvoidshutdown(){//TODOAuto-generatedmethodstubtry{ss.close();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}publicstaticvoidmain(String[]args)throwsException{ServerImplserver=newServerImpl();server.revicer();Clientlmpl类:packagecom.briup.woss.client.impl;importjava.io.ObjectOutputStream;.Socket;importjava.util.Collection;importjava.util.Properties;importcom.briup.util.BIDR;importcom.briup.util.BackUP;importcom.briup.util.impl.BackUPImpl;importcom.briup.woss.client.Client;publicclassClientImplimplementsClient{//privateStringserver_ip="”;privateintport=8899;privateBackUPback=newBackUPImpl();@Overridepublicvoidinit(Propertiesproperties){//TODOAuto-generatedmethodstub}@Overridepublicvoidsend(Collection<BIDR>collection)throwsException{//TODOAuto-generatedmethodstubtry{Socketsocket=newSocket(server_ip,port);ObjectOutputStreamoos=newObjectOutputStream(socket.getOutputStream());//把之前发送失败并保存在clientBack文件,读到obj类中(在读取数据同时,保留备份文件。)Objectobj=back.load("clientBack",BackUP.LOAD_UNREMOVE);if(obj!=null){Collection<BIDR>col=(Collection<BIDR>)obj;collection.addAll(col);oos.writeObject(collection);oos.close();socket.close();}catch(Exceptione)(e.printStackTrace();//把发送失败的数据备份到clientBack文件(在保存数据时,覆盖原来的文件。)back.store("clientBack",collection,BackUP.STORE_OVERRIDE);}}publicstaticvoidmain(String[]args)throwsException{ClientImplclient=newClientImpl();GatherImplgather=newGatherImpl();Collection<BIDR>col=gather.gather();client.send(col);System.out.println("客户端发送完毕...");}}DBStoreImpl类:packagecom.briup.woss.server.impl;importjava.sql.Connection;importjava.sql.Date;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.util.Collection;importjava.util.Properties;importcom.briup.util.BIDR;importcom.briup.woss.server.DBStore;publicclassDBStoreImplimplementsDBStore{privateStringurl="jdbc:oracle:thin:@localhost:1521:xe";privateStringdriver="oracle.jdbc.driver.OracleDriver”;privateStringuser="system";privateStringpassword="123";@Overridepublicvoidinit(Propertiesproperties){//TODOAuto-generatedmethodstub}@OverridepublicvoidsaveToDB(Collection<BIDR>collection)throwsException{//TODOAuto-generatedmethodstub//1.注册驱动Class.forName(driver);//2.获取连接Connectionconn=DriverManager.getConnection(url,user,password);PreparedStatementpstmt=null;inti=0;//批处理循环控制标志intk=0;System.out.println("已经执行到这啦11111");for(BIDRbidr:collection){intday=bidr.getLogin_date().getDate();if(day!=i){if(pstmt!=null){pstmt.executeBatch();pstmt.close();}//ifi=day;Stringsql="insertinto"+"t_detail_"+day+"values(?,?,?,?,?,?)”;pstmt=conn.prepareStatement(sql);}//if//给参数赋值pstmt.setString(1,bidr.getAAA_login_name());pstmt.setString(2,bidr.getLogin_ip());pstmt.setDate(3,newDate(bidr.getLogin_date().getTime()));pstmt.setDate(4,newDate(bidr.getLogout_date().getTime()));pstmt.setString(5,bidr.getNAS_ip());pstmt.setInt(6,bidr.getTime_deration());System.out.println("已经执行到这啦222222");//批处理pstmt.addBatch();//每一千条入库一次if((k++)%1000==0)pstmt.executeBatch();}//forpstmt.executeBatch();if(pstmt!=null)(pstmt.close();}if(conn!=null)(conn.close();}}}GatherImpl类:packagecom.briup.woss.client.impl;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.sql.Timestamp;importjava.util.ArrayList;importjava.util.Collection;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.Properties;importcom.briup.util.BIDR;importcom.briup.util.BackUP;importcom.briup.util.impl.BackUPImpl;importcom.briup.woss.client.Gather;publicclassGatherlmplimplementsGather{privateStringsrc_file="radwtmp/radwtmp_test";privateStringnas_ip="";//用来保存只有上线没有下线信息的人的信息privateMap<String,BIDR>map=newHashMap<String,BIDR>();//用来保存有上线并且有下线信息的人的信息privateList<BIDR>list=newArrayList<BIDR>();privateBackUPback=newBackUPImpl();privateLongk=0L;@Overridepublicvoidinit(Propertiesproperties){//TODOAuto-generatedmethodstub}@OverridepublicCollection<BIDR>gather()throwsException{//把之前发送失败并保存在clientBack文件,读到obj类中(在读取数据同时,保留备份文件。)Objectobj=back.load("mapFile",BackUP.LOAD_UNREMOVE);if(obj!=null){//将上次未成功匹配的数据加到本次的map集合中map.putAll((Map<String,BIDR>)obj);}//将上次读取的字节数取出来Longskip=(Long)back.load("skip",BackUP.LOAD_UNREMOVE);FileReaderfr=newFileReader(newFile(src_file));BufferedReaderbr=newBufferedReader(fr);if(skip!=null){br.skip(skip);}else{skip=0L;}Stringstr=null;while((str=br.readLine())!=null){skip+=str.length()+1;String[]info=str.split("[|]”);if("7".equals(info[2])){//如果获取的字符串是7就代表是上线信息,//新建数据对象BIDRbidr=newBIDR();bidr.setAAA_login_name(info[0].substring(1));bidr.setNAS_ip(nas_ip);Timestamplogin_date=newTimestamp(Long.parseLong(info[3])*1000);bidr.setLogin_ip(info[4]);bidr.setLogin_date(login_date);map.put(info[4],bidr);}elseif("8”.equals(info[2])){k++;//既有上线信息又有下线信息的人数统计BIDRbidr=map.remove(info[4]);Timestamplogout_date=newTimestamp(Long.parseLong(info[3])*1000);bidr.setLogout_date(logout_date);longbegin=bidr.getLogin_date().getTime();inttime_duration=(int)(Long.parseLong(info[3])*1000-begin);System.out.println(time_duration);bidr.setTime_deration(time_duration);list.add(bidr);}}//将本次没有下线信息匹配的数据保存下来back.store("mapFile",map,BackUP.STORE_OVERRIDE);back.store("skip",skip,BackUP.STORE_OVERRIDE);System.out.println("既有上线信息又有下线信息的人数为:"+k+"人");returnlist;}//publicstaticvoidmain(String[]args)throwsException{//GatherImplgather=newGatherImpl();//Collection<BIDR>col=gather.gather();//System.out.println("采集到的完整的数据:"+col.size());//}}五.设计结果及测试请输入用户名::svstem输人口令3,接到=OracleDatabaseIBsExpressEditionRelease.0-ProductionSQL>selectcount<*>fromt_detail_252/COUNT<*>27061SQL>selectcount<*>fromt_detail_262/COUNT<*>163S1SQL>曰Consola汶'Clientlmpl[JavaApplication]C:\ProgramFilesVjavaVjrel.7.C5350005990003300006720001472000122S0075900010070002124000729000152S001379000100500069000863000121700033410002280000既有上线信息又有下线信息的人数为:43412人

T_DETAIL_25表数据索引模型约束条件橙校祭计信息5跋认值触发器相关性SQL查而:行教计裁插入行编辑AAA_LOGLN_NAMELOG用_IPLOG虬DATELOGOUT_DATEHAS_IPTFME_DURATION曳briup1E72176.25.2Q.11Q25-9月-1Q25-9月-1Q6D叩briup15S8Q325-9月-1Q25-9月-1Q15000briup1115S2.7Q.7.19B25-9月-1Q25-9月-1Q44000brVp14O4325-9月-1Q25-9月-1Q5SOOObriup16161QQ325-9月-1Q25-9月-1Q67000briup1123153.4S.7.1&425-9月-1Q25-9月-1Q9顺B「i叩俏37121.49.6.S25-9月-1Q25-9月-1Q82000briup1B7012Q.6S.16.7S25-9月-1Q25-9月-1Q12000B「i叩12337925-9月-1Q25-9月-1Q74000briup1422S&25-9月-1Q25-9月-1Q13700Qbriup1352SQ525-9月-1Q25-9月-1Q3000briup1045225-9月-1Q25-9月-1Q13300Qbriup1Q725-9月-1Q25-9月-1Q95000briup1916325-9月-1Q25-9月-1Q15BOOQr=?x

查询布数计数插入行编辑AAA_LDG[N_NAMELOGINJPLOGIN_DATELOGODT_DATENAS_EPT!ME_DURATEOHbriup1B905B.6S.21.5226-9月-1Q跻9月-1Q127.0.G.143QG0briup133S66.5S.B.15S26-9月-1Q跻9月-1Q127.0.G.17SQM亳briup13147026-9月-1Q跻9月-1Q127.0.G.124&Q0briup11S2137.69.12.BS26-9月-1Q月-10127.0.G.170GQbriup1SS14S.24.6.3326-9月-1Q月-10127.0.G.173QG0briup1470G526-9月-1Q月-10127.0.G.15&&QQbriup1S30726-9月-1Q月-10127.0.G.11330OTbriup139615S.61.12.7S26-9月-1Q月-10127.0.G.150GQbriup17E0526-9月-1Q月-10127.0.G.192GQQbriup135011S.71.21.1QS26-9月-1Q月-10127.0.G.144000briup1767326-9月-1Q月-10127.0.G.1141QGQ曳briup1296426-9月-1Q弟9月-10127.0.G.1610Q0曳briup17G11626-9月-1Q弟9月-10127.0.G.134&Q0曳briup1979526-9月-1Q弟9月-10127.0.G.1&OGQ曳briup1B&2726-9月-1Q弟9月-10127.0.G.196000大于5。。的行1-15下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论