資源描述:
《計算機(jī)科學(xué)與技術(shù)學(xué)院報告》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、計算機(jī)科學(xué)與技術(shù)學(xué)院實驗報告?實驗題目:實驗2.2學(xué)號:200805130095日期:2011/4/23班級:08電商姓名:孟然Email:mengran3275188@163.com實驗?zāi)康模豪蒙弦粋€實驗所學(xué)知識,基于corba技術(shù)開發(fā)一個考試查詢系統(tǒng),要求:l建立一個數(shù)據(jù)庫,包括學(xué)生基本信息表(考試證號,姓名),考試成績表(考試證號,科目號,成績),考試科目表(考試科目號,科目名稱)l服務(wù)器提供:a)查詢服務(wù):允許用戶通過考試證號查詢所有科目成績,或通過考試證號+科目名稱查詢某一科目成績b)
2、錄入服務(wù):允許管理員對數(shù)據(jù)庫錄入考生信息,及其考試成績l客戶可:a)錄入:與服務(wù)器端錄入服務(wù)對應(yīng)b)查詢:與服務(wù)器端查詢服務(wù)對應(yīng)硬件環(huán)境:機(jī)房電腦軟件環(huán)境:JDK1.3+VisiBroker5.1實驗步驟:(一)編寫Student.idl并進(jìn)行編譯,命令為idl2javaStudent.idl//學(xué)生管理系統(tǒng)的對象接口定義moduleStudent{interfaceDataManager{//通過考試證號查詢所有科目成績返回考試證號、姓名、科目名稱、成績stringlookup_1(instri
3、ngstu_id);//通過考試證號+科目名稱查詢某一科目成績stringlookup_2(instringstu_id,instringcourse_name);//管理考生信息-錄入stringdelStudent(instringstu_id);//管理考生成績-錄入};};編譯完畢以后,VisiBroker會生成一個Student文件夾,內(nèi)部包含了與Student接口相關(guān)的各類。其中,真正與成績查詢和數(shù)據(jù)錄入相關(guān)的類是DataManager類,它分裝了8個方法,這些方法均與成績查詢和數(shù)據(jù)錄
4、入相關(guān)。(二)編寫DBConnect.java。該類主要負(fù)責(zé)與數(shù)據(jù)庫的交互,其中的兩個方法executeQuery(Stringsql)和executeUpdate(Stringsql)負(fù)責(zé)執(zhí)行SQL語句。importjava.sql.*;publicclassDBConnect{privateStringurl="jdbc:odbc:chang";privateConnectionconn=null;privateStatementstmt=null;publicDBConnect(){try{
5、Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection(url,"sa","");stmt=conn.createStatement();}catch(Exceptione){System.err.print("Error"+e.getMessage());}}publicResultSetexecuteQuery(Stringsql){ResultSetrs=null;try{rs=stmt.e
6、xecuteQuery(sql);}catch(SQLExceptione){System.err.print("Error"+e.getMessage());}returnrs;}publicintexecuteUpdate(Stringsql){intupdate=0;try{update=stmt.executeUpdate(sql);conn.commit();}catch(SQLExceptione){System.err.print("Error"+e.getMessage());}r
7、eturnupdate;}publicvoidclose(){try{stmt.close();conn.close();}catch(SQLExceptione){System.err.print("Error"+e.getMessage());}}}(一)編寫DataManagerImpl.java。該類是最為重要的一個類,他的主要功能是實現(xiàn)Datamanager中的所有方法,由于具體代碼很多,只列舉其中之一。publicStringlookup_2(Stringstu_id,Stringco
8、urse_name){Stringresult="";ResultSetrs=null;try{//第一步:查詢學(xué)號為stu_id的學(xué)生是否存在。Stringsql="SELECT姓名FROM學(xué)生WHERE考試證號='"+stu_id+"'";Stringstu_name=null;rs=db.executeQuery(sql);if(rs.next()){stu_name=rs.getString("姓名");}else{result="Sorry,Ican'tfind"+stu