版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> Java課程設(shè)計報告</p><p> 系 (院): 計算機科學學院 </p><p> 專業(yè)班級: 石油軟件工程10901班 </p><p> 姓 名: </p><p> 學 號:
2、 </p><p> 指導教師: </p><p> 設(shè)計時間: 2011.12.1 - 2011.12.15 </p><p> 設(shè)計地點: </p><p><b> 前言<
3、/b></p><p> 自1946年第一臺計算機問世以來,計算機產(chǎn)業(yè)的飛速發(fā)展已遠遠超出人們對它的預(yù)料,在某些生產(chǎn)線上,甚至一秒鐘就能生產(chǎn)出一臺微型計算機,產(chǎn)量猛增,價格低廉,這就使得它的應(yīng)用范圍迅速擴展。如今,計算機已深入到人類社會的各個領(lǐng)域。各種應(yīng)用程序不斷地被開發(fā)應(yīng)用,隨之程序設(shè)計語言也不斷發(fā)展完善,Java便是這程序語言世界里的一朵奇葩,如今甚為流行。與C++語言相比,Java是一種完全面向?qū)ο?/p>
4、的語言,它吸取了C++語言的語句結(jié)構(gòu),去掉了指針、多繼承、運算符重載等這些降低安全性、低可靠性的語言元素,并實現(xiàn)了自動回收垃圾的功能,從而使得Java語言更具有可移植性、魯棒性、安全性、與環(huán)境無關(guān)性等特點,贏得了廣大軟件開發(fā)者的青睞。</p><p> 今天,作為計算機科學與技術(shù)及相關(guān)專業(yè)的學生,更應(yīng)該了解Java語言的語法規(guī)范,理解Java語言程序設(shè)計的基本特點,掌握利用Java語言編寫程序的基本技巧,學會利
5、用Java開發(fā)環(huán)境調(diào)試程序。為了更進一步將所學知識與實際結(jié)合起來,我選擇了實現(xiàn)Java與SQL Server2005的連接,并實現(xiàn)了一些功能。故作此報告。</p><p><b> 目錄</b></p><p><b> 前言2</b></p><p> 一、課程設(shè)計目的2</p><p&g
6、t; 二、設(shè)計任務(wù)及要求2</p><p><b> 三、任務(wù)選定2</b></p><p> 四、總體設(shè)計框架圖(主要功能)3</p><p> 五、詳細設(shè)計與實現(xiàn)過程4</p><p> 六、課程設(shè)計小結(jié)10</p><p> 七、參考文獻10</p&
7、gt;<p><b> 附錄12</b></p><p><b> 課程設(shè)計目的</b></p><p> 1、進一步熟悉Java開發(fā)環(huán)境,熟悉用Java完成一個應(yīng)用程序的設(shè)計過程,掌握有關(guān)編輯、調(diào)試和整合程序的方法和技巧。</p><p> 2、通過此設(shè)計,了解Java語言的特點;熟悉Java程序
8、的編寫;體會Java語言在問題求解中的特點。</p><p> 3、總結(jié)學習Java語言的心得和體會,并對Java課程設(shè)置提出自己的意見和建議。</p><p><b> 設(shè)計任務(wù)及要求</b></p><p> 根據(jù)Java課程的學習,選擇以下所列中的任一,并完成:</p><p> 設(shè)計一個Java的應(yīng)用程序
9、;</p><p> 分析一個Java的應(yīng)用系統(tǒng)的開發(fā)方案;</p><p> 寫出對Java類的框架的理解。</p><p><b> 任務(wù)選定</b></p><p> 根據(jù)我對Java語言的學習和了解,結(jié)合本學期我們開了數(shù)據(jù)庫的課程,于是我決定做一個Java與數(shù)據(jù)庫連接的程序,并且實現(xiàn)創(chuàng)建表、插入數(shù)據(jù)、查詢
10、數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)等功能。</p><p> 總體設(shè)計框架(主要功能)</p><p><b> 詳細設(shè)計與實現(xiàn)過程</b></p><p> JDBC驅(qū)動程序的裝載</p><p> ?。?) 安裝JDBC</p><p> 首先將下載的sqljdbc_1.2.2323.101_e
11、nu。exe(即Microsoft SQL Server 2005 JDBC Driver 1.2中文版)解壓縮到C:\Program Files\Microsoft SQL Server 2005 JDBC Driver</p><p> (2)在MyEclipse中配置JDBC</p><p> 選擇菜單Project>Properties,選擇Java Build Path
12、,點擊按鈕Add External JARs…后在打開的對話框中選擇sqljdbc.jar文件。然后就會看到sqljdbc.jar被加進去了。</p><p> 因為我采用的是Windows集成認證,而不是如同username=sa;passwd=’123456’這樣的SQL網(wǎng)絡(luò)認證,因此我還要做一件事情就是將sqljdbc_auth.dll文件復(fù)制到項目文件夾中。Sqljdbc_auth.dll位于C:\P
13、rogram Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\chs\auth\x86文件夾下。復(fù)制到項目文件夾下后,就會看到:</p><p> 還需要從“開始”里的“所有程序” 里打開 “microsoft sqlserver ”的 SQL Server Configuration Manager,</p><p>&l
14、t;b> 跳出這個窗口</b></p><p> 然后我就查看了SQL Server 2005 網(wǎng)絡(luò)配置, 下面有個 SQLEXPRESS 的協(xié)議, 我的 TCP/IP 是 禁用狀態(tài) , 于是我把它給啟用了。</p><p><b> 啟用后:</b></p><p> 然后我又去看了一下 SQL Nativer Cl
15、ient 配置狀態(tài),如下</p><p> 然后重啟了SQL Server服務(wù)器。</p><p> 為了獲取加載JDBC驅(qū)動程序的端口,我在我的SQl Server Management Studio新建查詢里輸入exec sys.sp_readerrorlog 0, 1, 'listening'運行后 得到我的sql 正在運行的tcp/ip接口。</p&g
16、t;<p><b> 實現(xiàn)代碼如下:</b></p><p> String dbDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";</p><p> String dbUrl= "jdbc:sqlserver://localhost:1384;</p
17、><p> integratedSecurity=true;databaseName=JavaLinkDB";</p><p> //1384是我本機上的端口,一般的默認端口是1433</p><p><b> try{</b></p><p> Class.forName(dbDriver);</p
18、><p> myprint("驅(qū)動程序已經(jīng)裝載!");</p><p> myprint("即將連接數(shù)據(jù)庫");</p><p> }catch(Exception ex){</p><p> myprint("無法加載驅(qū)動程序:"+ex.getMessage());</p
19、><p><b> return ;</b></p><p><b> }</b></p><p><b> 詳數(shù)據(jù)庫連接</b></p><p><b> 實現(xiàn)代碼</b></p><p> Connection conn
20、= null;</p><p><b> try{</b></p><p><b> //創(chuàng)建SQL命令</b></p><p> conn = DriverManager.getConnection(dbUrl);//連接數(shù)據(jù)庫對象</p><p> myprint("數(shù)據(jù)庫連接
21、成功");</p><p> }catch(Exception ex){</p><p> ex.printStackTrace();</p><p> myprint("數(shù)據(jù)庫連接錯誤");</p><p> System.exit(0);</p><p><b>
22、 }</b></p><p><b> 創(chuàng)建數(shù)據(jù)表</b></p><p><b> //創(chuàng)建表</b></p><p> String creatTable = "IF OBJECT_ID('S')IS NOT NULL Drop TABLE S ;Create TABLE &
23、quot; +</p><p> "S(No NCHAR(4),NAME NCHAR(10),SEX NCHAR(1),AGE INT,GRADE FLOAT)";</p><p> java.sql.Statement stat = conn.createStatement();</p><p> stat.executeUpdate(c
24、reatTable);</p><p> myprint("表創(chuàng)建成功");</p><p><b> 向表中插入數(shù)據(jù)</b></p><p> 用到的類Statement</p><p><b> 實現(xiàn)代碼:</b></p><p><b&
25、gt; //往表中添加數(shù)據(jù)</b></p><p> String s1 = "INSERT INTO S VALUES('1001','田婷婷','女','21','89.5')"; </p><p> String s2 = "INSERT INTO S VA
26、LUES('1002','胡化騰','男','21','92.5')"; </p><p> String s3 = "INSERT INTO S VALUES('1003','陳明陽','男','20','88.5')";
27、 </p><p> String s4 = "INSERT INTO S VALUES('1004','吳歡歡','女','21','87.5')"; </p><p> stat.executeUpdate(s1);</p><p> stat.execut
28、eUpdate(s2);</p><p> stat.executeUpdate(s3);</p><p> stat.executeUpdate(s4);</p><p><b> 帶參數(shù)的數(shù)據(jù)插入</b></p><p> 主要使用到的類是PreparedStatement,及這個類的set方法和excute
29、方法。</p><p><b> 代碼實現(xiàn)如下:</b></p><p> myprint("輸入學生的學號、姓名、性別、年齡、成績:");</p><p> String no,name;</p><p> String sex;</p><p><b>
30、 int age;</b></p><p> float grade;</p><p> Scanner in = new Scanner(System.in);</p><p> no=in.nextLine();</p><p> name=in.nextLine();</p><p> se
31、x=in.nextLine();</p><p> age=in.nextInt();</p><p> grade=in.nextFloat();</p><p> PreparedStatement pstat = conn.prepareStatement( "INSERT INTO S VALUES(?,?,?,?,?)");<
32、;/p><p> pstat.setString(1, no);</p><p> pstat.setString(2, name);</p><p> pstat.setString(3, sex);</p><p> pstat.setInt(4, age);</p><p> pstat.setFloat(
33、5, grade);</p><p> pstat.execute();</p><p> myprint("數(shù)據(jù)插入成功");</p><p><b> 查詢表中的數(shù)據(jù)</b></p><p> 主要使用到的類是ResultSet</p><p> rs = st
34、at.executeQuery("SELECT * FROM S");</p><p> while(rs.next()){</p><p> myprint(rs.getString("No")+'\t'+rs.getString("NAME") +'\t'+</p><p
35、> rs.getString("SEX")+'\t'+rs.getInt("AGE")+'\t'+rs.getFloat("GRADE"));</p><p><b> }</b></p><p> myprint("讀取完畢");</p&
36、gt;<p><b> 刪除表中的數(shù)據(jù)</b></p><p><b> try{</b></p><p><b> //刪除學生</b></p><p> myprint("輸入要刪除的學生的學號");</p><p> Scann
37、er myin = new Scanner(System.in);</p><p> String nodelete;</p><p> nodelete = myin.nextLine();</p><p> PreparedStatement pstat1 = conn.prepareStatement( "DELETE S FROM S
38、 WHERE NO=?");</p><p> pstat1.setString(1, nodelete);</p><p> myprint("刪除成功");</p><p> rs.close();</p><p> pstat1.close();</p><p> conn
39、.close();</p><p> }catch(SQLException ex){</p><p> ex.printStackTrace();</p><p><b> }</b></p><p><b> 運行結(jié)果界面</b></p><p><b>
40、; 課程設(shè)計小結(jié)</b></p><p> 在使用Java程序編寫這個程序以前我總是覺得學計算機,或者從事軟件開發(fā)學習不需要掌握太多的語言,精通一門語言就可以一通百通。我們之前學習過C++和C#,于我而言,課堂上的學習只是老師把我們領(lǐng)到了這兩門語言的門口,也就是說要想對這兩門語言有更深入的了解是需要花很多時間的,所以我花在學習Java上的精力不夠。但是在這學期的學習過程中加上這次做這個程序的過程中
41、我才發(fā)現(xiàn)Java語言有它自身的特點。認識到這門語言有它自身的特點。</p><p> 在這次的寫程序過程中,遇到了很多問題,尤其是在驅(qū)動程序裝載過程中,問題頻頻。每當遇到問題時我便上網(wǎng)搜索不懂的東西,幾經(jīng)摸索才把這些問題解決??墒瞧鹣鹊臅r候覺得連接數(shù)據(jù)庫很難,所以之前一直沒有想用Java連接數(shù)據(jù)庫去做一個什么程序,當時想的就是把數(shù)據(jù)庫連接上,所以做成現(xiàn)在這個樣子。</p><p><
42、;b> 參考資料</b></p><p> [1] 葉乃文,王丹.Java語言程序設(shè)計教材[M].北京:機械工業(yè)出版社.2009.</p><p> [2]尹志宇,郭晴.數(shù)據(jù)庫原理與應(yīng)用教程——SQL Server[M].北京: 清華大學出版社,2005. </p><p><b> 指導老師意見:</b></p
43、><p> 成績: 教師簽名: </p><p> 年 月 日</p><p><b> 附錄:</b></p><p><b> JDBC驅(qū)動類型</b></p><p
44、> 第一類驅(qū)動程序把JDBC轉(zhuǎn)換成ODBC驅(qū)動器,靠ODBC驅(qū)動器和數(shù)據(jù)庫通信。Sun公司在JDK中提供了這樣的一個驅(qū)動器:Java/JDBC網(wǎng)橋。但是,這個網(wǎng)橋不支持JDBC2,并且它需要正確部署和配置一個ODBC驅(qū)動程序。這個網(wǎng)橋便于調(diào)試,但不贊成用它開發(fā)產(chǎn)品。</p><p> 第二類驅(qū)動程序的源代碼由兩部分組成:一部分是Java語言代碼,另一部分是本地代碼。這類驅(qū)動程序和一個數(shù)據(jù)庫客戶的API通
45、信。當使用這類驅(qū)動程序時,除了Java庫外還必須安裝能在指定平臺上運行的代碼。</p><p> 第三類驅(qū)動程序是一個純Java客戶庫,它使用一個獨立于數(shù)據(jù)庫的協(xié)議,把數(shù)據(jù)庫請求傳送給服務(wù)一個服務(wù)器組件,這個組件把數(shù)據(jù)庫請求轉(zhuǎn)換成指定數(shù)據(jù)庫協(xié)議接收的請求。Java客戶庫獨立于具體的數(shù)據(jù)庫,因此簡化了部署過程。</p><p> 第四類驅(qū)動程序是一個純Java庫,它直接把JDBC請求轉(zhuǎn)換
46、成指定數(shù)據(jù)庫協(xié)議接收的請求。</p><p> 二、java鏈接SQL Server 時到主機的TCP/IP 連接失敗是什么錯誤? </p><p> 解決方案:1 首先要做的是在sql新建查詢里輸入exec sys.sp_readerrorlog 0, 1, 'listening'運行后 會顯示你的sql 正在運行的tcp/ip接口看看是否和你java代碼中
47、指定的url中的接口不一致2 你看一下服務(wù)器的TCP/IP是否被禁用了,sqlserver2005默認情況下是禁用了TCP/IP連接。啟動TCP/IP連接的方法:開始\程序\Microsoft SQL Server 2005\配置工具\目錄下的SQL Server Configuration Manager,選擇mssqlserver協(xié)議, 然后右邊窗口有個tcp/ip協(xié)議,然后啟動它,把sqlserver服務(wù)停了再啟動。3.設(shè)
48、置 “開始\程序\Microsoft SQL Server 2005\配置工具\SQL Server 外圍應(yīng)用配置器” 在“SQL Server 2005 外圍應(yīng)用配置器”頁, 單擊“服務(wù)和連接的外圍應(yīng)用配置器” ,然后單擊展開“數(shù)據(jù)庫引擎”, 選中“遠程連接”,在右邊選中“本地連接和遠程連接”, 再選擇要使用的協(xié)議,( 這個地方應(yīng)當啟用T</p><p> 我按方法一在sql新建查詢里輸入exec sys.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計報告
- java課程設(shè)計報告-
- java課程設(shè)計報告
- java課程設(shè)計報告
- java課程設(shè)計報告--beatbox
- JAVA課程設(shè)計報告.doc
- java語言課程設(shè)計報告
- java課程設(shè)計實驗報告--java日歷設(shè)計
- java課程設(shè)計報告---java實現(xiàn)畫筆系統(tǒng)
- java課程設(shè)計-猜數(shù)游戲課程設(shè)計報告
- java課程設(shè)計-蜘蛛紙牌游戲設(shè)計課程設(shè)計報告
- java課程設(shè)計報告——蜘蛛紙牌
- java課程設(shè)計--掃雷游戲報告
- java代購網(wǎng)課程設(shè)計報告
- java坦克大戰(zhàn)課程設(shè)計報告
- java課程設(shè)計報告---考試系統(tǒng)
- java課程設(shè)計報告--hannoi塔
- java火柴游戲課程設(shè)計報告
- java課程設(shè)計報告—蜘蛛紙牌
- java課程設(shè)計報告--hannoi塔
評論
0/150
提交評論