版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> JAVA課程設(shè)計(jì)報(bào)告</p><p> 課題名稱:設(shè)備管理系統(tǒng)</p><p><b> 摘要:</b></p><p> 隨著社會生產(chǎn)活動(dòng)中自動(dòng)化水平越來越高,設(shè)備的監(jiān)控及其數(shù)據(jù)的存儲越來越重要。</p><p> 本系統(tǒng)使用JAVA語言,結(jié)合實(shí)際編寫了該設(shè)備管理系統(tǒng),可以實(shí)現(xiàn)對數(shù)據(jù)庫的準(zhǔn)
2、確操作,完成用戶的登錄、修改密碼、添加用戶、刪除用戶,及設(shè)備的添加和刪除,設(shè)備數(shù)據(jù)的添加、刪除和查詢等一系列功能。</p><p><b> 關(guān)鍵詞:</b></p><p> 設(shè)備管理系統(tǒng) 數(shù)據(jù)庫技術(shù) JDBC SQL語句</p><p><b> 項(xiàng)目總體規(guī)劃</b></p><p&g
3、t; 隨著社會生產(chǎn)活動(dòng)中自動(dòng)化水平越來越高,設(shè)備的監(jiān)控及其數(shù)據(jù)的存儲越來越重要。數(shù)據(jù)庫技術(shù)已經(jīng)成為現(xiàn)代信息技術(shù)的重要組成部分,是現(xiàn)在計(jì)算機(jī)信息系統(tǒng)和計(jì)算機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)和核心。對于任何一個(gè)企業(yè)來說,數(shù)據(jù)是企業(yè)重要的資產(chǎn),如何有效利用這些數(shù)據(jù),對于企業(yè)發(fā)展起著極其重要的作用。隨著我國市場經(jīng)濟(jì)的迅速發(fā)展,在工廠中,為了有效管理各種設(shè)備及其在運(yùn)作過程中產(chǎn)生的數(shù)據(jù),開發(fā)一個(gè)方便高效的管理軟件是非常必要的。本系統(tǒng)使用JAVA 語言,結(jié)
4、合實(shí)際編寫了該設(shè)備管理系統(tǒng),可以實(shí)現(xiàn)對數(shù)據(jù)庫的準(zhǔn)確操作,完成用戶的登錄、修改密碼、添加用戶、刪除用戶,及設(shè)備的添加和刪除,設(shè)備數(shù)據(jù)的添加、刪除和查詢等一系列功能。</p><p> 本系統(tǒng)開始運(yùn)行時(shí)首先進(jìn)入登陸界面,用戶輸入正確的用戶名及密碼后進(jìn)入主窗體,然后通過點(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)對設(shè)備的添加和刪除,其功能定義如圖2所示。</p><p><b> 圖2</b></p><p> 2.3數(shù)據(jù)管理基本功能分析</p><p> 數(shù)據(jù)管理室系統(tǒng)的核心,可以實(shí)現(xiàn)對數(shù)據(jù)的添加、刪除及查詢,其功能定義如圖3所示。</p><p><b> 圖3</b>&l
7、t;/p><p><b> 3.數(shù)據(jù)庫設(shè)計(jì)</b></p><p> 本系統(tǒng)使用微軟公司的ACCESS數(shù)據(jù),數(shù)據(jù)源名稱為” shebei ”。根據(jù)系統(tǒng)的需求,</p><p> 經(jīng)過詳細(xì)的分析設(shè)計(jì),本系統(tǒng)數(shù)據(jù)庫中各個(gè)數(shù)據(jù)表的字段定義和說明如下。</p><p> users(用戶信息表),存放注冊用戶的信息,如表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ù)(程序中每臺設(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ù)庫連接</b></p><p> JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫
10、的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。</p><p> JDBC訪問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> 然后就可以通過數(shù)據(jù)源連接到數(shù)據(jù)庫,關(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語句的使用</p><p> 系統(tǒng)開發(fā)過程中關(guān)鍵部分是SQL語句的使用。SQL(Structured Query Language)結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL語言包含4個(gè)部分: </p><p> 數(shù)據(jù)定義語言(DDL),例如:C
17、REATE、DROP、ALTER等語句。 </p><p> 數(shù)據(jù)操作語言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(刪除)語句。 </p><p> 數(shù)據(jù)查詢語言(DQL),例如:SELECT語句。 </p><p> 數(shù)據(jù)控制語言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等語句。</p&
18、gt;<p> SQL是高級的非過程化編程語言,是溝通數(shù)據(jù)庫服務(wù)器和客戶端的重要工具,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以,具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng),可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的 SQL接口。它以記錄集合作為操作對象,所有SQL語句接受集合作為輸入,返回集合作為輸出。</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í)要核對用戶名和密碼是否一致。關(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ù)庫中新建一個(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> 此模塊是對數(shù)據(jù)庫中某個(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)目測試</b></p><p> 本系統(tǒng)在運(yùn)行調(diào)試的過程中遇到很多錯(cuò)誤并進(jìn)行了大量的調(diào)試和改正。</p><p> 連接數(shù)據(jù)庫出錯(cuò),程序中定義了String url="jd
43、bc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=shebei.mdb";而我的數(shù)據(jù)庫access使用的是2007版本的,access后綴為accdb,后綴改為mdb后數(shù)據(jù)庫連接正常。</p><p> 使用組件JPasswordField的方法getPassword用于比較識別用戶密碼是否正確是出錯(cuò),原因是該方法返回值為cha[],與數(shù)據(jù)庫中密
44、碼數(shù)據(jù)類型(String)不匹配,比較不出來,把JPasswordField換為TextField使用方法getText后問題解決。</p><p> 點(diǎn)擊菜單后對話框不顯示,加入語句setVisible(true)之后問題解決。</p><p> 程序中sql語句中表名為變量,語句"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 )"后問題解決,因?yàn)閟ql語句事實(shí)上為一個(gè)字符串,變量不能寫到引號里,應(yīng)用加號拼接。</p><p> 程序中sql語句中數(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è)備列表,來保存已有的設(shè)備名,每次打開下拉菜單是從數(shù)據(jù)庫中讀取設(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(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語言課程設(shè)計(jì)報(bào)告力學(xué)實(shí)驗(yàn)設(shè)備管理系統(tǒng)
- 個(gè)人課程設(shè)計(jì)報(bào)告—實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- c語言課程設(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ù)庫課程設(shè)計(jì)-設(shè)備管理系統(tǒng)
- 設(shè)備管理系統(tǒng) 數(shù)據(jù)庫課程設(shè)計(jì)
評論
0/150
提交評論