

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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> 課題名稱:設(shè)備管理系統(tǒng)</p><p><b> 摘要:</b></p><p> 隨著社會(huì)生產(chǎn)活動(dòng)中自動(dòng)化水平越來(lái)越高,設(shè)備的監(jiān)控及其數(shù)據(jù)的存儲(chǔ)越來(lái)越重要。</p><p> 本系統(tǒng)使用JAVA語(yǔ)言,結(jié)合實(shí)際編寫(xiě)了該設(shè)備管理系統(tǒng),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的準(zhǔn)
2、確操作,完成用戶的登錄、修改密碼、添加用戶、刪除用戶,及設(shè)備的添加和刪除,設(shè)備數(shù)據(jù)的添加、刪除和查詢等一系列功能。</p><p><b> 關(guān)鍵詞:</b></p><p> 設(shè)備管理系統(tǒng) 數(shù)據(jù)庫(kù)技術(shù) JDBC SQL語(yǔ)句</p><p><b> 項(xiàng)目總體規(guī)劃</b></p><p&g
3、t; 隨著社會(huì)生產(chǎn)活動(dòng)中自動(dòng)化水平越來(lái)越高,設(shè)備的監(jiān)控及其數(shù)據(jù)的存儲(chǔ)越來(lái)越重要。數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成為現(xiàn)代信息技術(shù)的重要組成部分,是現(xiàn)在計(jì)算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)和核心。對(duì)于任何一個(gè)企業(yè)來(lái)說(shuō),數(shù)據(jù)是企業(yè)重要的資產(chǎn),如何有效利用這些數(shù)據(jù),對(duì)于企業(yè)發(fā)展起著極其重要的作用。隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的迅速發(fā)展,在工廠中,為了有效管理各種設(shè)備及其在運(yùn)作過(guò)程中產(chǎn)生的數(shù)據(jù),開(kāi)發(fā)一個(gè)方便高效的管理軟件是非常必要的。本系統(tǒng)使用JAVA 語(yǔ)言,結(jié)
4、合實(shí)際編寫(xiě)了該設(shè)備管理系統(tǒng),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的準(zhǔn)確操作,完成用戶的登錄、修改密碼、添加用戶、刪除用戶,及設(shè)備的添加和刪除,設(shè)備數(shù)據(jù)的添加、刪除和查詢等一系列功能。</p><p> 本系統(tǒng)開(kāi)始運(yùn)行時(shí)首先進(jìn)入登陸界面,用戶輸入正確的用戶名及密碼后進(jìn)入主窗體,然后通過(guò)點(diǎn)擊主窗體的各項(xiàng)菜單進(jìn)入各項(xiàng)功能。</p><p><b> 系統(tǒng)需求分析</b></p>
5、<p> 2.1用戶管理基本功能分析</p><p> 系統(tǒng)中用戶需要正確的密碼才能獲得能錄權(quán)限,登錄之后可以進(jìn)行一系列數(shù)據(jù)操作。</p><p> 其功能定義如圖1所示。</p><p><b> 圖1</b></p><p> 2.2設(shè)備管理基本功能分析</p><p>
6、; 設(shè)備管理可以實(shí)現(xiàn)對(duì)設(shè)備的添加和刪除,其功能定義如圖2所示。</p><p><b> 圖2</b></p><p> 2.3數(shù)據(jù)管理基本功能分析</p><p> 數(shù)據(jù)管理室系統(tǒng)的核心,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的添加、刪除及查詢,其功能定義如圖3所示。</p><p><b> 圖3</b>&l
7、t;/p><p><b> 3.數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 本系統(tǒng)使用微軟公司的ACCESS數(shù)據(jù),數(shù)據(jù)源名稱為” shebei ”。根據(jù)系統(tǒng)的需求,</p><p> 經(jīng)過(guò)詳細(xì)的分析設(shè)計(jì),本系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)數(shù)據(jù)表的字段定義和說(shuō)明如下。</p><p> users(用戶信息表),存放注冊(cè)用戶的信息,如表1
8、.</p><p> 表1 users</p><p> shebeilist(設(shè)備列表),存放設(shè)備列表,如表2.</p><p> 表2 shebeilist</p><p> shebei1(設(shè)備信息表),名為shebei1 的設(shè)備的各項(xiàng)數(shù)據(jù)(程序中每臺(tái)設(shè)備建一個(gè)數(shù)據(jù)表),如表3.</p>&l
9、t;p> 表3 shebei1</p><p> 4. 關(guān)鍵技術(shù)和難點(diǎn)</p><p><b> 4.1數(shù)據(jù)庫(kù)連接</b></p><p> JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)
10、的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。</p><p> JDBC訪問(wèn)ACCESS有兩種方式,一種是JDBC-ODBC橋接式,另一種是ODBC直接方式。本系統(tǒng)使用的是ODBC直接方式。ODBC直接連接方式采用了JDBC直接連接思想。他是在程序中直接指出需要使用的ODBC驅(qū)動(dòng)程序,從而免去了配置數(shù)據(jù)源的麻煩,提高程序的可移植性。</p
11、><p> 首先需要加載驅(qū)動(dòng)程序,代碼如下:</p><p><b> try</b></p><p><b> {</b></p><p> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");</p><p>
12、;<b> }</b></p><p> catch (ClassNotFoundException e)</p><p><b> {</b></p><p> System.out.println("加載驅(qū)動(dòng)程序錯(cuò)誤!"+e);</p><p><b>
13、}</b></p><p> 然后就可以通過(guò)數(shù)據(jù)源連接到數(shù)據(jù)庫(kù),關(guān)鍵代碼如下:</p><p> Connection conn;</p><p> Statement stmt;</p><p> ResultSet rs;</p><p> String url="jdbc:odbc
14、:Driver={MicroSoft Access Driver (*.mdb)};DBQ=shebei.mdb";</p><p> conn=DriverManager.getConnection(url,"","");</p><p> stmt=conn.createStatement();</p><p&g
15、t; rs=stmt.executeQuery("SELEC* FROM users where username="+"'"+t_name.getText()+"'");</p><p> rs.close();</p><p> stmt.close();</p><p> co
16、nn.close();</p><p> 4.2 SQL語(yǔ)句的使用</p><p> 系統(tǒng)開(kāi)發(fā)過(guò)程中關(guān)鍵部分是SQL語(yǔ)句的使用。SQL(Structured Query Language)結(jié)構(gòu)化查詢語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。SQL語(yǔ)言包含4個(gè)部分: </p><p> 數(shù)據(jù)定義語(yǔ)言(DDL),例如:C
17、REATE、DROP、ALTER等語(yǔ)句。 </p><p> 數(shù)據(jù)操作語(yǔ)言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語(yǔ)句。 </p><p> 數(shù)據(jù)查詢語(yǔ)言(DQL),例如:SELECT語(yǔ)句。 </p><p> 數(shù)據(jù)控制語(yǔ)言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語(yǔ)句。</p&
18、gt;<p> SQL是高級(jí)的非過(guò)程化編程語(yǔ)言,是溝通數(shù)據(jù)庫(kù)服務(wù)器和客戶端的重要工具,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以,具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng),可以使用相同的SQL語(yǔ)言作為數(shù)據(jù)輸入與管理的 SQL接口。它以記錄集合作為操作對(duì)象,所有SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出。</p><p> 例如程序中用到
19、的有:</p><p> "INSERT INTO " + s + " (dianya ,dianliu,zhuangtai,guzhangcs) VALUES ("+s1+","+s2+", "+s3+" ,"+s4+")"</p><p> "CREAT
20、E TABLE " + s + " ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50) , zhuangtai varchar(50) ,guzhangcs INTEGER )"</p><p> "DROP TABLE " + s</p><p> "DE
21、LETE FROM users WHERE username ="+s1</p><p> "SELECT * FROM users where username="+"'"+t_name.getText()+"'"</p><p> "UPDATE users SET password=
22、"+s3+" WHERE username ="+s2</p><p> 5 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</p><p> 5.1用戶管理設(shè)計(jì)與實(shí)現(xiàn)</p><p> 用戶管理中最重要的登陸,此時(shí)要核對(duì)用戶名和密碼是否一致。關(guān)鍵代碼如下:</p><p> conn=DriverManager.getConnec
23、tion(url,"","");</p><p> stmt=conn.createStatement();</p><p> rs=stmt.executeQuery("SELECT * FROM users where username="+"'"+t_name.getText()+"
24、'");</p><p> while(rs.next())</p><p> {sname=rs.getString(1);</p><p> spass=rs.getString(2);</p><p> if(t_name.getText().equals(sname)&&t_pass.get
25、Text().equals(spass))</p><p><b> {</b></p><p> l_error.setText("登陸成功");</p><p> t_name.setText("");</p><p> t_pass.setText("&qu
26、ot;);</p><p> myframe =new MyFrame();</p><p> this.dispose();</p><p><b> break;</b></p><p><b> }</b></p><p><b> else
27、</b></p><p><b> {</b></p><p> l_error.setText("用戶名或密碼錯(cuò)誤");</p><p><b> until++;</b></p><p><b> }</b></p>&
28、lt;p><b> }</b></p><p> 5.2設(shè)備管理設(shè)計(jì)與實(shí)現(xiàn)</p><p> 設(shè)備管理模塊中添加設(shè)備實(shí)際上是在數(shù)據(jù)庫(kù)中新建一個(gè)表,刪除設(shè)備實(shí)質(zhì)上是刪除一個(gè)表。添加設(shè)備關(guān)鍵代碼如下:</p><p> conn=DriverManager.getConnection(url,"","&
29、quot;);</p><p> stmt=conn.createStatement();</p><p> rs=stmt.executeQuery("SELECT * FROM shebeilist where shebeiname="+"'"+t_name.getText()+"'");</p>
30、;<p> if(rs.next())</p><p><b> {</b></p><p> a1.setText("設(shè)備已經(jīng)存在,添加失??!");</p><p><b> }</b></p><p><b> else</b>&
31、lt;/p><p><b> {</b></p><p> String temp="INSERT INTO shebeilist (shebeiname) VALUES (" + s1 + " )";</p><p> stmt.executeUpdate(temp);</p><
32、p> String temp1="CREATE TABLE " + s + " ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50) , zhuangtai varchar(50) ,guzhangcs INTEGER )";</p><p> stmt.execute(temp1);</p
33、><p> a1.setText("設(shè)備添加成功!");</p><p><b> }</b></p><p> rs.close();</p><p> stmt.close();</p><p> conn.close();</p><p>
34、 5.3數(shù)據(jù)管理設(shè)計(jì)與實(shí)現(xiàn)</p><p> 此模塊是對(duì)數(shù)據(jù)庫(kù)中某個(gè)設(shè)備的某一條數(shù)據(jù)進(jìn)行操作,添加、刪除或查詢,其中查詢功能關(guān)鍵代碼如下:</p><p> conn=DriverManager.getConnection(url,"","");</p><p> stmt=conn.createStatement();
35、</p><p> if (s1.equals("ID"))</p><p><b> {</b></p><p> rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE id LIKE "+"'"+
36、t_guanjian.getText().trim()+"'");</p><p><b> }</b></p><p> else if (s1.equals("電壓"))</p><p><b> {</b></p><p> rs=s
37、tmt.executeQuery("SELECT * FROM " + s + " WHERE dianya LIKE "+"'"+t_guanjian.getText().trim()+"'");</p><p><b> }</b></p><p> else i
38、f (s1.equals("狀態(tài)"))</p><p><b> {</b></p><p> rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE zhuangtai LIKE "+"'"+t_guanjian.getTex
39、t().trim()+"'");</p><p><b> }</b></p><p> else if (s1.equals("故障次數(shù)"))</p><p><b> {</b></p><p> rs=stmt.executeQue
40、ry("SELECT * FROM " + s + " WHERE guzhangcs LIKE "+"'"+t_guanjian.getText().trim()+"'");</p><p><b> }</b></p><p> else if (s1.equal
41、s("電流"))</p><p><b> {</b></p><p> rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE dianliu LIKE "+"'"+t_guanjian.getText().trim()+&
42、quot;'");</p><p><b> }</b></p><p><b> 6 項(xiàng)目測(cè)試</b></p><p> 本系統(tǒng)在運(yùn)行調(diào)試的過(guò)程中遇到很多錯(cuò)誤并進(jìn)行了大量的調(diào)試和改正。</p><p> 連接數(shù)據(jù)庫(kù)出錯(cuò),程序中定義了String url="jd
43、bc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=shebei.mdb";而我的數(shù)據(jù)庫(kù)access使用的是2007版本的,access后綴為accdb,后綴改為mdb后數(shù)據(jù)庫(kù)連接正常。</p><p> 使用組件JPasswordField的方法getPassword用于比較識(shí)別用戶密碼是否正確是出錯(cuò),原因是該方法返回值為cha[],與數(shù)據(jù)庫(kù)中密
44、碼數(shù)據(jù)類型(String)不匹配,比較不出來(lái),把JPasswordField換為TextField使用方法getText后問(wèn)題解決。</p><p> 點(diǎn)擊菜單后對(duì)話框不顯示,加入語(yǔ)句setVisible(true)之后問(wèn)題解決。</p><p> 程序中sql語(yǔ)句中表名為變量,語(yǔ)句"CREATE TABLE s ( id COUNTER(1,1) ,dianya va
45、rchar(50) ,dianliu varchar(50) , zhuangtai varchar(50) ,guzhangcs INTEGER )"有錯(cuò),改為"CREATE TABLE " + s + " ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50),zhuangtai varchar(50) ,guzhangcs I
46、NTEGER )"后問(wèn)題解決,因?yàn)閟ql語(yǔ)句事實(shí)上為一個(gè)字符串,變量不能寫(xiě)到引號(hào)里,應(yīng)用加號(hào)拼接。</p><p> 程序中sql語(yǔ)句中數(shù)據(jù)類型不匹配,如"SELECT * FROM " + s + " where id="+ t_id.getText(),id數(shù)據(jù)類型為數(shù)字,而t_id.getText()為字符串,改為"SELECT * FROM &
47、quot; + s + " where id="+Integer.valueOf(t_id.getText()).intValue()),即把String轉(zhuǎn)換為Integer。</p><p> 程序中用到下拉菜單,下拉菜單中內(nèi)容為設(shè)備名,可功能中有添加設(shè)備的功能,為實(shí)現(xiàn)下拉菜單的動(dòng)態(tài)顯示,新建了一個(gè)表即設(shè)備列表,來(lái)保存已有的設(shè)備名,每次打開(kāi)下拉菜單是從數(shù)據(jù)庫(kù)中讀取設(shè)備名。</p>
48、;<p><b> 7 參考文獻(xiàn)</b></p><p> 1. 《Java畢業(yè)設(shè)計(jì)指南與項(xiàng)目實(shí)踐》 孫更新等 編著. 科學(xué)出版社. 2008.3</p><p> 2. 《Java基礎(chǔ)與實(shí)例精解》 賓春清 李建瑜 編著. 北京航
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備管理器java課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告--實(shí)驗(yàn)設(shè)備管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告---設(shè)備管理系統(tǒng)
- 課程設(shè)計(jì)(實(shí)驗(yàn)設(shè)備管理系統(tǒng))
- 資產(chǎn)設(shè)備管理系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--公司設(shè)備管理系統(tǒng)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)(課程設(shè)計(jì)報(bào)告)
- 課程設(shè)計(jì)--設(shè)備管理系統(tǒng)實(shí)現(xiàn)—管理模塊
- c語(yǔ)言課程設(shè)計(jì)報(bào)告力學(xué)實(shí)驗(yàn)設(shè)備管理系統(tǒng)
- 個(gè)人課程設(shè)計(jì)報(bào)告—實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--- 設(shè)備管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)(設(shè)備管理)
- java課程設(shè)計(jì)報(bào)告學(xué)生管理系統(tǒng)
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告----教室管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告--雇員管理系統(tǒng)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)課程設(shè)計(jì)
- 實(shí)驗(yàn)室設(shè)備管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-設(shè)備管理系統(tǒng)
- 設(shè)備管理系統(tǒng) 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論