Java综合性试验-信息133-1232-张兴.docx
成果Java程序设计综合性试验学生成果管理系统学号201212030332姓名张兴班级信息133班试验步1 .数据库、数据表(或数据文件)设计<1)学生表信息设计CREATETAB1.E'studentinfo'('sno'int(20)NOTNU1.1.,sname-varchar(20)NOTNl'1.1.,sageint(10)defaultNU1.1.,ssexVtirchur(4)NOTNU1.1.,saddressvarchar(40)NOTNU1.1.,sclass-varchar(20)NOTNU1.1.,PRlMARYKEYCsno'),KEYsno('sno')运用uINSERTINTOstudentinfo-VA1.UESCsno,snamc,sage,ssex','saddress','sclass'):”语句将学生信息插入生成学生表:<2)课程表信息设计CREATETAB1.Ecourseinfo('cidint(10)NOTNU1.1.,'cname-varchar(20)defaultNU1.1.,cscoreint(5)defaultNU1.1.,'snoint(20)NOTNU1.1.,PRIRYKEYCcid')运用"INSERTINTOcourseinfoVA1.UESCcid','cnane,cscore,sno,);''语句将课程我信息插入生成课程表;2 .主控模块设计(1)主界面(2)录入学生成果信息(3)修改学生信息例如:将学号为“103”号的“王明”的年龄改为“19”,“班级”改为“会计2班”,将其高校英语课程的成果改为“89”;修改窗口:(4)增加学生信息增加一名学生信息,“109”,“林佳”,"19”,“女”,“理学院”,“信息1班”;录入窗口如图所示:录入后杳询如图所示:(5)删除学生信息将刚刚建立的“109号”“林佳''的信息删除:删除结果:4.学生信息杳询模块设计(1)按学生姓名查询(2)按学生学号查询(3)按学生所在班级隹询(4)按学生所在学院杳询5.课程信息自询模块设计(1)按“高校英语”课程查询:(2)按“高等数学”课程查询:通过综合试脸使我们学会了运用MyEclipsc,如何通过JDBC技术访问数据库,学会如何将数据表通过Java语句在MyEclipse中运用。同时还解广在Java中进行数据库应用程序开发的方法和步骤、SWing组件特性和ACIiOn接口以及如何开发多窗体应用程序。虽然这次试验的过程很艰难,但是最终和同学的探讨之后都克服,我信任这次试验对我们以后的学习肯定会有很大的帮助!username=prop.gctPropcrty("uscr">password=prop.gccPropcrty(*passwordM);)六*打开数据库连接tthrow$ClaSSNO(FOUlKlENCePIiOn/,动类找不到拿»lhrowsSQ1.Exccplion数据库连接出现问题*throwsNamingEXCCPtiQn/publicvoidgetConn()IhrOWSClaSSNoIFOUndEXCep<ion.SQ1.Exception.NamingExceptionClass.foName(StrDriver);conn=DrivcrManagcr.gctConncction(StrConncction.username,password>Contextcon=newlnitialConccx<();DataSourceds=(DauSource)con.lookuX"javaxom'envjdbc.,tesi3);conn=ds.gelConnccli>n():)京执行增、州、改刈语句。*ParamSql各种增、删、改语句。“rcturn受影响的行数.publicintUpdale(Stringsql)(inirsl=-I;try(gcConn();s(a(=conn.createStaien>e!H();rsl=Stat.CxeculeUpdatc(Sql):)catch(ClassNotFoundExccptionc)(c.prin(S(ackTracc();Icatch(SQ1.Exce<ione)e.priniStackTrace();)catch(NamingExccptionc)(c.princS(3ckTracc();)finallyIClOSCO:Jreturnrst;)"奉* 执行各种查询辆句.京用意:运用完毕后,要单独关闭数据摩资源* ParamSql查询语句* rcturn结果,/publicResuhSeiquerytS(ringsql)(try(gctConn():scat=conn.crcatcStatcmcn();r$=stat.execu(eQuery(sql):)catch(CIaSSN(F0undExccplione)(c.printStackTrace();Icatch(SQI.Exceptionc)e.ri11S(ackTrace();)catch(NaniingExceptione)e.printStackTracc();)re<urnrs;)public1.istqueryI(Siringsql,Classcls)1.istlis(=newArray1.iNO:try(gctConn();scat=conn.crcatcStatcn>en();rs=stat.execuieQuery(sql);wh!)e(rs.nex(O)(tryIObjectobj=cls.ncwlnstancc();FieldI!fields=ClsgeiDeciaivdFieIdsO;for(Fieldfield:fields)(Uy(Methodmethodcls.ge(DeclaredMethod(,se÷field.geNane().subs(ring(0.1).toU)erCase()+fiekl.ge(Nane,subs(ring(1>.field.gelType():methcxi.invokc(obj.ConvcrtUtils.convc11(rs.gctSring(fkld.gc(Namc(),ficld.gcT>,peO);Ca【ch(SecurityExceptione)(ITODOAuto-gcne11lcdcatchblockc.printStack,racc():cacch(IllcgalArgumcnlExccptionc)UTODOuto-genera(edcatchblocke.p11nlStackTracc();catch(NoSuchMeth(xiExccptionc)UTODOAuto-gcncratcdcatchblocke.xinStackTrace();catch(InvocationTargelExccptione>“TODOAuto-gcncratcdcatchblockc.printStackTracc();>list.add(obj);)catch<instanliationExccp(ionc)(e.rinStackTraceO:)catch<IllegalAccessExceplione)UprintStackTmceO;)catch(ClassNocFoundExceplione)(e.printStackTracc():Icatch(SQl.Exccpiionc)e.riuSackTrace();)catch(NaiiiingExcephone)(c.printStackTrace();JfinallyCIoSeaJreturnlist:1六*关闭数据库资源*/publicvoidclosc()tryif(rs!=null)rs.closc();)if(sial!=null)(stat.closc():)if(conn!=null)(COnn.close。;Jcatch(SQ1.Exccplionc)c.prinS(ackTracc():J)2 .设计表头信息packagecom.dao;publicclassJFmmCDac设置JTabIe的灰头publicSMngugeIDateTiIIecHStringtitle(=学号"."姓名二"年龄"."性别V地址","班级"):returntitle;IpublicString)OgetDateTide1()(Stringtittefl=(学号","姓名J年龄名性别V地址"."班级”,“课程二成果");returntitle;II3 .主页面代码packagecom.dao:imx>11java.sql.ResuhSei;on:ticy.StuBcan;publicclassStuDaoextendsDbDao显示全部学生信息publicString(showStu()throwsException(Stringa11=newStringge(Rows016J:intrw=0:Stringsq!=scl<xtfromStudcntlnlb*;RcsuhSclrs-supcr.qucry(sql);IryIwhi)e(rs.nexl<)(/Systcnwut.println(,rs中有数据”):将查到的记录放到二维数组中aw11O)=rs.ge(Im(I)÷mm:an>w)(1J=rs.getSlring(2);aDwJ(2=rs.gctJnt(3)+'*w;a11>w3=rs.getString(4);aIrow4)=rs.geS(ring(5);an>w)(5)=rs.gelSlring(6);保循环一次gw加1.并旦连到的记录添加到数组中row*÷catch(SQ1.Excep<ione)ODOAuto-gcncratcdcatchb!<kc.princScackTracc();)finally(super.closc():)returna;)添加学生信息publicintaddStu(intsno.Stringsnamc.intsagc.Stringsscx.Stringsaddrcss.Stringsclass)(Siringsqlwinserti11oStudentInfovalues(,M+sniH,V,+sname+*'VM+sage+''M+ssex+M,M+saddrcss+,',/,+sclass+Mr)M;inti=supcr.update(sql):returni;J/删除学生信刖publicint