版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> Java課程設(shè)計(jì)報(bào)告</p><p> 系 (院): 計(jì)算機(jī)科學(xué)學(xué)院 </p><p> 專業(yè)班級(jí): 石油軟件工程10901班 </p><p> 姓 名: </p><p> 學(xué) 號(hào):
2、 </p><p> 指導(dǎo)教師: </p><p> 設(shè)計(jì)時(shí)間: 2011.12.1 - 2011.12.15 </p><p> 設(shè)計(jì)地點(diǎn): </p><p><b> 前言<
3、/b></p><p> 自1946年第一臺(tái)計(jì)算機(jī)問世以來,計(jì)算機(jī)產(chǎn)業(yè)的飛速發(fā)展已遠(yuǎn)遠(yuǎn)超出人們對(duì)它的預(yù)料,在某些生產(chǎn)線上,甚至一秒鐘就能生產(chǎn)出一臺(tái)微型計(jì)算機(jī),產(chǎn)量猛增,價(jià)格低廉,這就使得它的應(yīng)用范圍迅速擴(kuò)展。如今,計(jì)算機(jī)已深入到人類社會(huì)的各個(gè)領(lǐng)域。各種應(yīng)用程序不斷地被開發(fā)應(yīng)用,隨之程序設(shè)計(jì)語言也不斷發(fā)展完善,Java便是這程序語言世界里的一朵奇葩,如今甚為流行。與C++語言相比,Java是一種完全面向?qū)ο?/p>
4、的語言,它吸取了C++語言的語句結(jié)構(gòu),去掉了指針、多繼承、運(yùn)算符重載等這些降低安全性、低可靠性的語言元素,并實(shí)現(xiàn)了自動(dòng)回收垃圾的功能,從而使得Java語言更具有可移植性、魯棒性、安全性、與環(huán)境無關(guān)性等特點(diǎn),贏得了廣大軟件開發(fā)者的青睞。</p><p> 今天,作為計(jì)算機(jī)科學(xué)與技術(shù)及相關(guān)專業(yè)的學(xué)生,更應(yīng)該了解Java語言的語法規(guī)范,理解Java語言程序設(shè)計(jì)的基本特點(diǎn),掌握利用Java語言編寫程序的基本技巧,學(xué)會(huì)利
5、用Java開發(fā)環(huán)境調(diào)試程序。為了更進(jìn)一步將所學(xué)知識(shí)與實(shí)際結(jié)合起來,我選擇了實(shí)現(xiàn)Java與SQL Server2005的連接,并實(shí)現(xiàn)了一些功能。故作此報(bào)告。</p><p><b> 目錄</b></p><p><b> 前言2</b></p><p> 一、課程設(shè)計(jì)目的2</p><p&g
6、t; 二、設(shè)計(jì)任務(wù)及要求2</p><p><b> 三、任務(wù)選定2</b></p><p> 四、總體設(shè)計(jì)框架圖(主要功能)3</p><p> 五、詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)過程4</p><p> 六、課程設(shè)計(jì)小結(jié)10</p><p> 七、參考文獻(xiàn)10</p&
7、gt;<p><b> 附錄12</b></p><p><b> 課程設(shè)計(jì)目的</b></p><p> 1、進(jìn)一步熟悉Java開發(fā)環(huán)境,熟悉用Java完成一個(gè)應(yīng)用程序的設(shè)計(jì)過程,掌握有關(guān)編輯、調(diào)試和整合程序的方法和技巧。</p><p> 2、通過此設(shè)計(jì),了解Java語言的特點(diǎn);熟悉Java程序
8、的編寫;體會(huì)Java語言在問題求解中的特點(diǎn)。</p><p> 3、總結(jié)學(xué)習(xí)Java語言的心得和體會(huì),并對(duì)Java課程設(shè)置提出自己的意見和建議。</p><p><b> 設(shè)計(jì)任務(wù)及要求</b></p><p> 根據(jù)Java課程的學(xué)習(xí),選擇以下所列中的任一,并完成:</p><p> 設(shè)計(jì)一個(gè)Java的應(yīng)用程序
9、;</p><p> 分析一個(gè)Java的應(yīng)用系統(tǒng)的開發(fā)方案;</p><p> 寫出對(duì)Java類的框架的理解。</p><p><b> 任務(wù)選定</b></p><p> 根據(jù)我對(duì)Java語言的學(xué)習(xí)和了解,結(jié)合本學(xué)期我們開了數(shù)據(jù)庫的課程,于是我決定做一個(gè)Java與數(shù)據(jù)庫連接的程序,并且實(shí)現(xiàn)創(chuàng)建表、插入數(shù)據(jù)、查詢
10、數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)等功能。</p><p> 總體設(shè)計(jì)框架(主要功能)</p><p><b> 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)過程</b></p><p> JDBC驅(qū)動(dòng)程序的裝載</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、,點(diǎn)擊按鈕Add External JARs…后在打開的對(duì)話框中選擇sqljdbc.jar文件。然后就會(huì)看到sqljdbc.jar被加進(jìn)去了。</p><p> 因?yàn)槲也捎玫氖荳indows集成認(rèn)證,而不是如同username=sa;passwd=’123456’這樣的SQL網(wǎng)絡(luò)認(rèn)證,因此我還要做一件事情就是將sqljdbc_auth.dll文件復(fù)制到項(xiàng)目文件夾中。Sqljdbc_auth.dll位于C:\P
13、rogram Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\chs\auth\x86文件夾下。復(fù)制到項(xiàng)目文件夾下后,就會(huì)看到:</p><p> 還需要從“開始”里的“所有程序” 里打開 “microsoft sqlserver ”的 SQL Server Configuration Manager,</p><p>&l
14、t;b> 跳出這個(gè)窗口</b></p><p> 然后我就查看了SQL Server 2005 網(wǎng)絡(luò)配置, 下面有個(gè) 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ū)動(dòng)程序的端口,我在我的SQl Server Management Studio新建查詢里輸入exec sys.sp_readerrorlog 0, 1, 'listening'運(yùn)行后 得到我的sql 正在運(yùn)行的tcp/ip接口。</p&g
16、t;<p><b> 實(shí)現(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是我本機(jī)上的端口,一般的默認(rèn)端口是1433</p><p><b> try{</b></p><p> Class.forName(dbDriver);</p
18、><p> myprint("驅(qū)動(dòng)程序已經(jīng)裝載!");</p><p> myprint("即將連接數(shù)據(jù)庫");</p><p> }catch(Exception ex){</p><p> myprint("無法加載驅(qū)動(dòng)程序:"+ex.getMessage());</p
19、><p><b> return ;</b></p><p><b> }</b></p><p><b> 詳數(shù)據(jù)庫連接</b></p><p><b> 實(shí)現(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ù)庫對(duì)象</p><p> myprint("數(shù)據(jù)庫連接
21、成功");</p><p> }catch(Exception ex){</p><p> ex.printStackTrace();</p><p> myprint("數(shù)據(jù)庫連接錯(cuò)誤");</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> 實(shí)現(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,及這個(gè)類的set方法和excute
29、方法。</p><p><b> 代碼實(shí)現(xiàn)如下:</b></p><p> myprint("輸入學(xué)生的學(xué)號(hào)、姓名、性別、年齡、成績(jī):");</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> //刪除學(xué)生</b></p><p> myprint("輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào)");</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> 運(yùn)行結(jié)果界面</b></p><p><b>
40、; 課程設(shè)計(jì)小結(jié)</b></p><p> 在使用Java程序編寫這個(gè)程序以前我總是覺得學(xué)計(jì)算機(jī),或者從事軟件開發(fā)學(xué)習(xí)不需要掌握太多的語言,精通一門語言就可以一通百通。我們之前學(xué)習(xí)過C++和C#,于我而言,課堂上的學(xué)習(xí)只是老師把我們領(lǐng)到了這兩門語言的門口,也就是說要想對(duì)這兩門語言有更深入的了解是需要花很多時(shí)間的,所以我花在學(xué)習(xí)Java上的精力不夠。但是在這學(xué)期的學(xué)習(xí)過程中加上這次做這個(gè)程序的過程中
41、我才發(fā)現(xiàn)Java語言有它自身的特點(diǎn)。認(rèn)識(shí)到這門語言有它自身的特點(diǎn)。</p><p> 在這次的寫程序過程中,遇到了很多問題,尤其是在驅(qū)動(dòng)程序裝載過程中,問題頻頻。每當(dāng)遇到問題時(shí)我便上網(wǎng)搜索不懂的東西,幾經(jīng)摸索才把這些問題解決。可是起先的時(shí)候覺得連接數(shù)據(jù)庫很難,所以之前一直沒有想用Java連接數(shù)據(jù)庫去做一個(gè)什么程序,當(dāng)時(shí)想的就是把數(shù)據(jù)庫連接上,所以做成現(xiàn)在這個(gè)樣子。</p><p><
42、;b> 參考資料</b></p><p> [1] 葉乃文,王丹.Java語言程序設(shè)計(jì)教材[M].北京:機(jī)械工業(yè)出版社.2009.</p><p> [2]尹志宇,郭晴.數(shù)據(jù)庫原理與應(yīng)用教程——SQL Server[M].北京: 清華大學(xué)出版社,2005. </p><p><b> 指導(dǎo)老師意見:</b></p
43、><p> 成績(jī): 教師簽名: </p><p> 年 月 日</p><p><b> 附錄:</b></p><p><b> JDBC驅(qū)動(dòng)類型</b></p><p
44、> 第一類驅(qū)動(dòng)程序把JDBC轉(zhuǎn)換成ODBC驅(qū)動(dòng)器,靠ODBC驅(qū)動(dòng)器和數(shù)據(jù)庫通信。Sun公司在JDK中提供了這樣的一個(gè)驅(qū)動(dòng)器:Java/JDBC網(wǎng)橋。但是,這個(gè)網(wǎng)橋不支持JDBC2,并且它需要正確部署和配置一個(gè)ODBC驅(qū)動(dòng)程序。這個(gè)網(wǎng)橋便于調(diào)試,但不贊成用它開發(fā)產(chǎn)品。</p><p> 第二類驅(qū)動(dòng)程序的源代碼由兩部分組成:一部分是Java語言代碼,另一部分是本地代碼。這類驅(qū)動(dòng)程序和一個(gè)數(shù)據(jù)庫客戶的API通
45、信。當(dāng)使用這類驅(qū)動(dòng)程序時(shí),除了Java庫外還必須安裝能在指定平臺(tái)上運(yùn)行的代碼。</p><p> 第三類驅(qū)動(dòng)程序是一個(gè)純Java客戶庫,它使用一個(gè)獨(dú)立于數(shù)據(jù)庫的協(xié)議,把數(shù)據(jù)庫請(qǐng)求傳送給服務(wù)一個(gè)服務(wù)器組件,這個(gè)組件把數(shù)據(jù)庫請(qǐng)求轉(zhuǎn)換成指定數(shù)據(jù)庫協(xié)議接收的請(qǐng)求。Java客戶庫獨(dú)立于具體的數(shù)據(jù)庫,因此簡(jiǎn)化了部署過程。</p><p> 第四類驅(qū)動(dòng)程序是一個(gè)純Java庫,它直接把JDBC請(qǐng)求轉(zhuǎn)換
46、成指定數(shù)據(jù)庫協(xié)議接收的請(qǐng)求。</p><p> 二、java鏈接SQL Server 時(shí)到主機(jī)的TCP/IP 連接失敗是什么錯(cuò)誤? </p><p> 解決方案:1 首先要做的是在sql新建查詢里輸入exec sys.sp_readerrorlog 0, 1, 'listening'運(yùn)行后 會(huì)顯示你的sql 正在運(yùn)行的tcp/ip接口看看是否和你java代碼中
47、指定的url中的接口不一致2 你看一下服務(wù)器的TCP/IP是否被禁用了,sqlserver2005默認(rèn)情況下是禁用了TCP/IP連接。啟動(dòng)TCP/IP連接的方法:開始\程序\Microsoft SQL Server 2005\配置工具\(yùn)目錄下的SQL Server Configuration Manager,選擇mssqlserver協(xié)議, 然后右邊窗口有個(gè)tcp/ip協(xié)議,然后啟動(dòng)它,把sqlserver服務(wù)停了再啟動(dòng)。3.設(shè)
48、置 “開始\程序\Microsoft SQL Server 2005\配置工具\(yùn)SQL Server 外圍應(yīng)用配置器” 在“SQL Server 2005 外圍應(yīng)用配置器”頁, 單擊“服務(wù)和連接的外圍應(yīng)用配置器” ,然后單擊展開“數(shù)據(jù)庫引擎”, 選中“遠(yuǎn)程連接”,在右邊選中“本地連接和遠(yuǎn)程連接”, 再選擇要使用的協(xié)議,( 這個(gè)地方應(yīng)當(dāng)啟用T</p><p> 我按方法一在sql新建查詢里輸入exec sys.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告-
- java課程設(shè)計(jì)報(bào)告--beatbox
- JAVA課程設(shè)計(jì)報(bào)告.doc
- java語言課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--java日歷設(shè)計(jì)
- java課程設(shè)計(jì)-猜數(shù)游戲課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告---java實(shí)現(xiàn)畫筆系統(tǒng)
- java課程設(shè)計(jì)-蜘蛛紙牌游戲設(shè)計(jì)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告——蜘蛛紙牌
- java課程設(shè)計(jì)--掃雷游戲報(bào)告
- java代購網(wǎng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告--hannoi塔
- java坦克大戰(zhàn)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告---方程求根
- java坦克大戰(zhàn)課程設(shè)計(jì)報(bào)告
- java坦克大戰(zhàn)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告---考試系統(tǒng)
評(píng)論
0/150
提交評(píng)論