java課程設(shè)計(jì)報(bào)告-設(shè)備管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論