2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論