![基于MVC的Java Web開發(fā)項(xiàng)目5 JDBC數(shù)據(jù)庫訪問實(shí)現(xiàn)商品顯示_第1頁](http://file4.renrendoc.com/view/e6eb4bc3a2bbc0d557002dcf0f953426/e6eb4bc3a2bbc0d557002dcf0f9534261.gif)
![基于MVC的Java Web開發(fā)項(xiàng)目5 JDBC數(shù)據(jù)庫訪問實(shí)現(xiàn)商品顯示_第2頁](http://file4.renrendoc.com/view/e6eb4bc3a2bbc0d557002dcf0f953426/e6eb4bc3a2bbc0d557002dcf0f9534262.gif)
![基于MVC的Java Web開發(fā)項(xiàng)目5 JDBC數(shù)據(jù)庫訪問實(shí)現(xiàn)商品顯示_第3頁](http://file4.renrendoc.com/view/e6eb4bc3a2bbc0d557002dcf0f953426/e6eb4bc3a2bbc0d557002dcf0f9534263.gif)
![基于MVC的Java Web開發(fā)項(xiàng)目5 JDBC數(shù)據(jù)庫訪問實(shí)現(xiàn)商品顯示_第4頁](http://file4.renrendoc.com/view/e6eb4bc3a2bbc0d557002dcf0f953426/e6eb4bc3a2bbc0d557002dcf0f9534264.gif)
![基于MVC的Java Web開發(fā)項(xiàng)目5 JDBC數(shù)據(jù)庫訪問實(shí)現(xiàn)商品顯示_第5頁](http://file4.renrendoc.com/view/e6eb4bc3a2bbc0d557002dcf0f953426/e6eb4bc3a2bbc0d557002dcf0f9534265.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、ED電子商城的數(shù)據(jù)存放在數(shù)據(jù)庫中,要將商品信息提供給用戶查看和選擇,則需要從數(shù)據(jù)庫中將商品信息讀取出來,本項(xiàng)目將帶領(lǐng)讀者實(shí)現(xiàn)商品的概要顯示及詳細(xì)顯示等功能。介紹Java Web開發(fā)中對數(shù)據(jù)庫訪問基礎(chǔ)知識及JDBC應(yīng)用,實(shí)現(xiàn)數(shù)據(jù)的讀取。熟悉JDBC數(shù)據(jù)訪問基礎(chǔ)知識。能正確使用JDBC訪問數(shù)據(jù)。能將數(shù)據(jù)在控制臺輸出顯示任務(wù)編號任務(wù)名稱任務(wù)5.1創(chuàng)建JDBC數(shù)據(jù)庫連接任務(wù)5.2商品列表信息顯示任務(wù)5.1 創(chuàng)建JDBC數(shù)據(jù)庫連接對于剛剛開始工作的小J,要先從簡單一點(diǎn)的功能上手創(chuàng)建JDBC數(shù)據(jù)庫連接。利用JDBC建立與MySQL數(shù)據(jù)庫連接,若連接成功,則輸出digital數(shù)據(jù)庫中商品表product_i
2、nfo的商品編號、商品名稱及商品價(jià)格相關(guān)信息。知識目標(biāo):了解JDBC工作原理;掌握J(rèn)DBC數(shù)據(jù)庫訪問的步驟。技能目標(biāo):能正確加載數(shù)據(jù)庫驅(qū)動程序;能正確建立與數(shù)據(jù)庫的連接;能正確將數(shù)據(jù)庫中數(shù)據(jù)讀出。JDBC是數(shù)據(jù)庫連接技術(shù)的簡稱,提供了連接和訪問各種數(shù)據(jù)庫的能力,使用JDBC連接主要步驟為:注冊和加載驅(qū)動器。與數(shù)據(jù)庫建立連接。發(fā)送SQL語句。處理結(jié)果。關(guān)閉連接。創(chuàng)建包。右擊src,在彈出的菜單中選擇new-pakage;在彈出的對話框中輸入包名。任務(wù)準(zhǔn)備。創(chuàng)建包及數(shù)據(jù)庫連接程序。新建文件。在新建的包上右擊,在彈出的菜單中選擇new-class4. 在彈出的對話框中輸入SimpleConnecit
3、on,同時(shí)選擇“public static void main(String args)”如圖,點(diǎn)擊“finish”,完成文件的創(chuàng)建。任務(wù)準(zhǔn)備。創(chuàng)建包及數(shù)據(jù)庫連接程序。自動生成代碼如下:package com.digitalweb.connection;public class SimpleConnection /* * param args */public static void main(String args) / TODO Auto-generated method stub任務(wù)準(zhǔn)備。創(chuàng)建包及數(shù)據(jù)庫連接程序。1. 下載JAVA連接MySQL的驅(qū)動程序.jar包2. 將第1步中下載的驅(qū)
4、動包,復(fù)制到WebRoot-WEB-INF-lib文件夾中。注冊和加載驅(qū)動器。3.打開在步驟一中新建的文件,在main()中添加如下代碼,完成驅(qū)動器的注冊與加載。1. package com.digitalweb.connection;2. import java.sql.*3. public class SimpleConnection 4. /*5. * param args6. */7. public static void main(String args) 8. / TODO Auto-generated method stub9. String driver = com.mysql
5、.jdbc.Driver ;10. try 11. / 1 注冊和加載驅(qū)動器12. Class.forName(driver); 13. / 2 與數(shù)據(jù)庫建立連接 14. /3.1 創(chuàng)建Statement對象 15. / 3.2 發(fā)送SQL語句 16. / 4 處理結(jié)果 17. / 5 關(guān)閉連接18. catch (Exception e) 19. e.printStackTrace();修改步驟二中的代碼,完成數(shù)據(jù)庫連接。代碼如下:1. package com.digitalweb.connection;2. import java.sql.*;3. public class SimpleC
6、onnection 4. /*5. * param args6. */7. public static void main(String args) 8. / TODO Auto-generated method stub9. String driver =com.mysql.jdbc.Driver;10. String url = jdbc:mysql:/:3306/digital?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolea
7、n=true;11. String userName = root;12. String pwd = 888888;與數(shù)據(jù)庫建立連接。13. try 14. / 1 注冊和加載驅(qū)動器15. Class.forName(driver); 16. / 2 與數(shù)據(jù)庫建立連接17. Connection con=DriverManager.getConnection(url,userName,pwd);18. /3.1 創(chuàng)建Statement對象 19. / 3.2 發(fā)送SQL語句 20. / 4 處理結(jié)果 21. / 5 關(guān)閉連接 22. catch (Exception e) 23. e.prin
8、tStackTrace();24. 25. 26.與數(shù)據(jù)庫建立連接。程序說明 :第10行:創(chuàng)建連接字符串。其中是本地機(jī)器IP地址,3306為端口號,digital是數(shù)據(jù)庫名;第11行:訪問數(shù)據(jù)庫的用戶名;第12行:訪問數(shù)據(jù)庫的密碼;第17行:與數(shù)據(jù)庫建立連接;建立連接后就可以向數(shù)據(jù)庫發(fā)送SQL語句了??梢允褂肅onnection接口中的CreateStatement方法創(chuàng)建對象,用于發(fā)送SQL。在上述程序段中添加代碼后如下所示:package com.digitalweb.connection;import java.sql.*;public class SimpleConnection /*
9、 * param args */public static void main(String args) / TODO Auto-generated method stubString driver =net.sourceforge.jtds.jdbc.Driver;String url = jdbc:mysql:/:3306/digital?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true;String userNam
10、e = root;String pwd = 888888;String sql=select code,name,num,price from product_info ;發(fā)送SQL語句。14.try 15. / 1 注冊和加載驅(qū)動器16.Class.forName(driver); 17./ 2 與數(shù)據(jù)庫建立連接18.Connection con=DriverManager.getConnection(url,userName,pwd);19./3.1 創(chuàng)建Statement對象20.PreparedStatement psmt = con.prepareStatement(sql);21.
11、/ 3.2 發(fā)送SQL語句22.ResultSet rs = psmt.executeQuery();23./ 4 處理結(jié)果 24./ 5 關(guān)閉連接 25. catch (Exception e) 26.e.printStackTrace();27.28.29.發(fā)送SQL語句。程序說明 :第13行:配置SQL語句,查找Product_info表的code,name,num,price信息。第19行:創(chuàng)建Statement對象;第22行:發(fā)送SQL語句;執(zhí)行完查詢操作,Statement對象執(zhí)行完查詢操作后,將查詢結(jié)果以結(jié)果集(ResultSet)對象形式返回,可根據(jù)用戶需求,將數(shù)據(jù)顯示出來。p
12、ackage com.digitalweb.connection;import java.sql.*;public class SimpleConnection /* * param args */public static void main(String args) / TODO Auto-generated method stubString driver =net.sourceforge.jtds.jdbc.Driver;String url = jdbc:mysql:/:3306/digital?useUnicode=true&characterEncoding=u
13、tf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true;String userName = root;String pwd = 888888;String sql=select code,name,num,price from product_info ;處理結(jié)果。14.try 15./ 1 注冊和加載驅(qū)動器16.Class.forName(driver); 17./ 2 與數(shù)據(jù)庫建立連接18.Connection con=DriverManager.getConnection(url,userName,pwd)
14、;19./3.1 創(chuàng)建Statement對象20.PreparedStatement psmt = con.prepareStatement(sql);21./ 3.2 發(fā)送SQL語句22.ResultSet rs = psmt.executeQuery();23./ 4 處理結(jié)果24.while (rs.next() 25.String pcode=rs.getString(code);26.String pname = rs.getString(name);27.int pnum = rs.getInt(num);28.float pprice = rs.getFloat(price);2
15、9.System.out.println(pcode+,t+pname+,t+pnum+,t+pprice);30.31./ 5 關(guān)閉連接 32. catch (Exception e) 33.e.printStackTrace();34.35.package com.digitalweb.connection;import java.sql.*;public class SimpleConnection /* * param args */public static void main(String args) / TODO Auto-generated method stubString
16、driver =net.sourceforge.jtds.jdbc.Driver;String url = jdbc:mysql:/:3306/digital?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true;String userName = root;String pwd = 888888;String sql=select code,name,num,price from product_info ;關(guān)閉數(shù)據(jù)連接。
17、訪問完成后,關(guān)閉數(shù)據(jù)庫連接,釋放與連接有關(guān)的資源。添加代碼:con.close(); 最終完成代碼如下:14.try 15./ 1 注冊和加載驅(qū)動器16.Class.forName(driver); 17./ 2 與數(shù)據(jù)庫建立連接18.Connection con=DriverManager.getConnection(url,userName,pwd);19./3.1 創(chuàng)建Statement對象20.PreparedStatement psmt = con.prepareStatement(sql);21./ 3.2 發(fā)送SQL語句22.ResultSet rs = psmt.execute
18、Query();23./ 4 處理結(jié)果24.while (rs.next() 25.String pcode=rs.getString(code);26.String pname = rs.getString(name);27.int pnum = rs.getInt(num);28.float pprice = rs.getFloat(price);29.Systm.out.println(pcode+,t+pname+,t+pnum+,t+pprice);30.31./ 5 關(guān)閉連接32.con.close();33. catch (Exception e) 34.e.printStack
19、Trace();運(yùn)行。點(diǎn)擊 運(yùn)行程序,結(jié)果如下圖所示:1、什么是JDBC數(shù)據(jù)庫訪問Java數(shù)據(jù)庫連接(JDBC-Java Data Base Connectivity)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序。2、JDBC數(shù)據(jù)訪問模型JDBC API既支持?jǐn)?shù)據(jù)庫訪問的兩層模型,也支持3層模型。 兩層模型。在兩層模型中,Java applet或應(yīng)用程序?qū)⒅苯优c數(shù)據(jù)庫進(jìn)行對
20、話。需要一個(gè)JDBC驅(qū)動程序來與所訪問的特定數(shù)據(jù)庫管理系統(tǒng)進(jìn)行通訊。用戶的SQL語句被送往數(shù)據(jù)庫中,結(jié)果將被送回給用戶。數(shù)據(jù)庫可以位于另一臺計(jì)算機(jī)上,用戶通過網(wǎng)絡(luò)連接到上面。這就叫做客戶機(jī)/服務(wù)器配置,其中用戶的計(jì)算機(jī)為客戶機(jī),提供數(shù)據(jù)庫的計(jì)算機(jī)為服務(wù)器。網(wǎng)絡(luò)可以是 Intranet(它可將公司職員連接起來),也可以是 Internet。兩層模型如圖所示。 三層模型。在三層模型中,命令先是被發(fā)送到服務(wù)的中間層,然后由它將SQL 語句發(fā)送給數(shù)據(jù)庫。數(shù)據(jù)庫對 SQL 語句進(jìn)行處理并將結(jié)果送回到中間層,中間層再將結(jié)果送回給用戶。三層模型很吸引人,因?yàn)榭捎弥虚g層來控制對公司數(shù)據(jù)的訪問和可更新的種類。中
21、間層的另一個(gè)好處是,用戶可以利用易于使用的高級API,而中間層將把它轉(zhuǎn)換為相應(yīng)的低級調(diào)用。最后,許多情況下三層結(jié)構(gòu)可提供一些性能上的好處。3、DriverManagerDriverManager管理一組 JDBC 驅(qū)動程序的基本服務(wù),作用于用戶和驅(qū)動程序之間。它跟蹤可用的驅(qū)動程序,并在數(shù)據(jù)庫和相應(yīng)驅(qū)動程序之間建立連接。另外,DriverManager 類也處理諸如驅(qū)動程序登錄時(shí)間限制及登錄和跟蹤消息的顯示等事務(wù)。對于簡單的應(yīng)用程序,一般需要在此類中直接使用的唯一方法是 。正如名稱所示,該方法將建立與數(shù)據(jù)庫的連接。JDBC 允許用戶調(diào)用 DriverManager 的方法 getDriver、g
22、etDrivers 和 registerDriver 及 Driver 的方法 connect。但多數(shù)情況下,讓 DriverManager 類管理建立連接的細(xì)節(jié)為上策。DriveManager常用的方法如下:4、Connection對象Connection接口代表與數(shù)據(jù)庫的連接,并擁有創(chuàng)建SQL語句的方法,以完成基本的SQL操作,同時(shí)為數(shù)據(jù)庫事務(wù)處理提供提交和回滾方法。一個(gè)應(yīng)用程序可與單個(gè)數(shù)據(jù)庫有一個(gè)或多個(gè)連接,也可以與多個(gè)數(shù)據(jù)庫有連接。Connection常用方法如下:名 稱說 明Close()斷開連接,釋放Connection對象的數(shù)據(jù)庫和JDBC資源。createStatement()
23、創(chuàng)建一個(gè)Statement對象將SQL語句發(fā)送到數(shù)據(jù)庫。Commit()用于提交SQL語句,確認(rèn)從上一次提交/回滾以來進(jìn)行的所有更改。isClose()用戶判斷Connection對象是否已經(jīng)被關(guān)閉。Rollback()用于取消SQL語句,取消在當(dāng)前事務(wù)中進(jìn)行的所有更改prepareCall(sql)創(chuàng)建一個(gè)callableStatement對象調(diào)用數(shù)據(jù)庫存儲過程prepareStatement創(chuàng)建一個(gè)preparedStatement對象將參數(shù)化的SQL語句發(fā)送到數(shù)據(jù)庫5、Statement對象Statement接口用于執(zhí)行不帶參數(shù)的簡單SQL語句。用來向數(shù)據(jù)庫提交SQL語句并返回SQL語句
24、的執(zhí)行結(jié)果,提交的SQL語句可以是查詢語句、修改語句、插入語句、刪除語句。Statement接口常用方法如下:名 稱說 明Close()釋放Statement對象的數(shù)據(jù)庫和JDBC資源。execute(sql)執(zhí)行給定的SQL語句,該語句可返回多個(gè)結(jié)果。executeQuery(sql)執(zhí)行給定的SQL語句,返回單個(gè)ResultSet對象。executeUpdate(sql)執(zhí)行給定的Insert、Update、Delete語句,返回影響的行數(shù)。getConnection()獲取生成該對象的Connection對象。getFetchSize()獲取結(jié)果集合的行數(shù),該數(shù)是根據(jù)此Statement
25、對象生成的ResultSet對象的默認(rèn)獲取大小。getMaxRows()獲取由此Statement對象生成的ResultSet對象可以包含的最大行數(shù)。6、ResultSet對象ResultSet對象包含了Statement和PreparedStatement的executeQuery方法中SELECT查詢的結(jié)果集,即符合指定SQL語句中條件的所有行。ResultSet對象提供了許多方法用來操作結(jié)果集中的記錄指針,同時(shí)提供了一套GET方法,提供了對這些數(shù)據(jù)的訪問。ResultSet接口常用方法如下:名 稱說 明next()指針從當(dāng)前位置下移一行。first()將指針移到結(jié)果集的第一行。previ
26、ous()將指針移到結(jié)果集的上一行。last()將指針移到結(jié)果集的最后一行。beforeFirst()將指針移到結(jié)果集的開頭(第一行之前)。afterLast()將指針移到結(jié)果集的末尾(最后一行之后)。isFirst()該方法的作用是檢查當(dāng)前行是否記錄集的第一行,如果是返回true, 否則返回falseisLast()該方法的作用是檢查當(dāng)前行是否記錄集的最后一行,如果是返回true ,否則返回false。isAfterLast();該方法檢查數(shù)據(jù)庫游標(biāo)是否處于記錄集的最后面,如果是返回true ,否則返回false。isBeforeFirst()該方法檢查數(shù)據(jù)庫游標(biāo)是否處于記錄集的最前面,如果
27、是返回true ,否則返回false。rowDeleted()如果當(dāng)前記錄集的某行被刪除了,那么記錄集中將會留出一個(gè)空位;調(diào)用rowDeleted()方法,如果探測到空位的存在,那么就返回true; 如果沒有探測到空位的存在,就返回false 值.rowInserted()如果當(dāng)前記錄集中插入了一個(gè)新行,該方法將返回true ,否則返回false。rowUpdated()如果當(dāng)前記錄集的當(dāng)前行的數(shù)據(jù)被更新,該方法返回true ,否則返回false。insertRow()該方法將執(zhí)行插入一個(gè)新行到當(dāng)前記錄集的操作。updateRow()該方法將更新當(dāng)前記錄集當(dāng)前行的數(shù)據(jù)。deleteRow()該
28、方法將刪除當(dāng)前記錄集的當(dāng)前行。7、PreparedStatement接口PreparedStatement接口是Statement接口的子接口,直接繼承并重載了 Statement 的方法。PreparedStatement 實(shí)例包含已編譯的 SQL 語句。這就是使語句“準(zhǔn)備好”。包含于 PreparedStatement 對象中的 SQL 語句可具有一個(gè)或多個(gè) IN 參數(shù)。IN參數(shù)的值在 SQL 語句創(chuàng)建時(shí)未被指定。相反的,該語句為每個(gè) IN 參數(shù)保留一個(gè)問號(“?”)作為占位符。每個(gè)問號的值必須在該語句執(zhí)行之前,通過適當(dāng)?shù)膕etXXX 方法來提供。由于 PreparedStatement
29、對象已預(yù)編譯過,所以其執(zhí)行速度要快于 Statement 對象。因此,多次執(zhí)行的 SQL 語句經(jīng)常創(chuàng)建為 PreparedStatement 對象,以提高效率。作為 Statement 的子類,PreparedStatement 繼承了 Statement 的所有功能。另外它還添加了一整套方法,用于設(shè)置發(fā)送給數(shù)據(jù)庫以取代 IN 參數(shù)占位符的值。同時(shí),三種方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要參數(shù)。這些方法的 Statement 形式(接受 SQL 語句參數(shù)的形式)不應(yīng)該用于 PreparedStatement 對象Prepare
30、dStatement其常用方法如下:名 稱說 明execute()在PreparedStatment對象中執(zhí)行任何SQL語句executeQuery()在PreparedStatement對象中執(zhí)行SQL查詢,并返回該查詢生成的結(jié)果集。executeUpdate()在PreparedStatement對象中執(zhí)行SQL語句,該語句必須是INSERT、UPDATE或DELETE語句;或DDL語句。getMetaData()檢索包含有關(guān)ResultSet對象的列消息的ResultSetMetaData對象,ResultSet對象將在執(zhí)行此PreparedStatement對象時(shí)返回。getParam
31、eterMetadata()檢索PreparedStatement對象的參數(shù)的編號、類型和屬性。setInt(x,y)將第X個(gè)參數(shù)設(shè)置為int值。setString(x,y)將第X個(gè)參數(shù)設(shè)置為String 值。PreparedStatement與Statement比較:PreparedStatementStatement使用范圍當(dāng)執(zhí)行相似SQL(結(jié)構(gòu)相同,具體值不同)語句的次數(shù)比較少;當(dāng)執(zhí)行相似SQL語句的次數(shù)比較多(例用戶登錄,頻繁操作表)語句一樣,只是具體的值不一樣,被稱為動態(tài)SQL。優(yōu) 點(diǎn)語法簡單語句只編譯一次,減少編譯次數(shù)。提高了安全性(阻止了SQL注入)缺 點(diǎn)使用硬編碼效率低,安全性
32、較差執(zhí)行非相似SQL語句時(shí),速度較慢。原 理硬編碼,每次執(zhí)行時(shí)相似SQL都會進(jìn)行編譯。相似SQL只編譯一次,減少編譯次數(shù)。使用示例:PreparedStatement perstmt = con.prepareStatement(insert into user_info (username,password,realName,address,score) values (?,?,?,?);perstmt.setString(1, tom);perstmt.setString(2, 123);perstmt.setString(3, 李明);perstmt.setString(4, 蘇工院);
33、pestmt.setInt(5,100);程序說明 :第1行:創(chuàng)建PreparedStatement對象。第2-6行:根據(jù)輸入?yún)?shù)的SQL類型選用合適的SetXXX方法,如是String類型,則使用setString()進(jìn)行賦值。任務(wù)5.2 商品列表信息顯示對于剛剛開始工作的小J,要先從簡單一點(diǎn)的功能上手商品列表信息顯示用戶進(jìn)入ED電子商城后,在網(wǎng)站的首頁上會顯示最新入庫的四個(gè)商品信息,用戶可以通過單擊“更多”鏈接查看更多的商品信息,如圖所示。知識目標(biāo):掌握數(shù)據(jù)庫操作SQL語句;掌握J(rèn)DBC中實(shí)現(xiàn)數(shù)據(jù)訪問的類與接口的作用與常用方法。技能目標(biāo):能正確的從數(shù)據(jù)庫取出數(shù)據(jù);能正確的封裝數(shù)據(jù);能正確的
34、在JSP頁面顯示數(shù)據(jù)。根據(jù)任務(wù)概述的情況,商品列表顯示功能的實(shí)現(xiàn),涉及到的類包括數(shù)據(jù)實(shí)體層(Product)、數(shù)據(jù)庫訪問層(ProductDaoImpl)、控制層(ProductServlet),本任務(wù)的重點(diǎn)是數(shù)據(jù)訪問層中數(shù)據(jù)的顯示JDBC事務(wù)處理的實(shí)現(xiàn),具體的序列如圖所示。數(shù)據(jù)訪問層ProductDaoImpl中的商品顯示方法是本任務(wù)的重點(diǎn),將體現(xiàn)JDBC事務(wù)處理,主要功能就是讀取product_info表中的信息??刂茖覲roductServlet中調(diào)用ProductDaoImpl中的顯示方法,將商品信息存放在session中參數(shù)傳遞給商品顯示頁面。創(chuàng)建商品實(shí)體類Product。1.新建文
35、件。右擊包,選擇菜單new-Class,如圖所示。在彈出的對話框中,輸入類名Product,完成創(chuàng)建,如圖所示。2. 添加Product類的字段,代碼如下所示。public class Product private int id;private String code;private String name;private String type;private String brand;private String pic;private int num;private double price;private double sale;private String intro;privat
36、e int status;3. 添加Product類的無參數(shù)構(gòu)造函數(shù)。在product類代碼段內(nèi)空白處右擊,在彈出的菜單內(nèi)選擇Source-Generate Constructors from Superclass(如圖)在彈出的對話框(圖)中點(diǎn)擊finish,完成無參數(shù)構(gòu)造函數(shù)的創(chuàng)建。4. 添加Product類的帶參數(shù)構(gòu)造函數(shù)。在product類代碼段內(nèi)空白處右擊,在彈出的菜單內(nèi)選擇 “Source-Generate Constructors using Fields”(如圖),在彈出的對話框中,點(diǎn)擊“Select All”按鈕,點(diǎn)擊“OK”完成帶參數(shù)構(gòu)造函數(shù)的創(chuàng)建。自動添加如下代碼段:pu
37、blic Product(int id, String code, String name, String type, String brand,String pic, int num, double price, double sale, String intro,int status) super();this.id = id;this.code = code; = name;this.type = type;this.brand = brand;this.pic = pic;this.num = num;this.price = price;this.sale = sa
38、le;ro = intro;this.status = status;添加各字段屬性。在product類代碼段內(nèi)空白處右擊,在彈出的菜單內(nèi)選擇 “Source-Generate Getters and Setters”(如圖),在彈出的對話框中,點(diǎn)擊“Select All”按鈕,點(diǎn)擊“OK”完成帶字段屬性的創(chuàng)建。自動添加如下代碼段:public int getId() return id;public void setId(int id) this.id = id;public String getCode() return code;public void setCode(S
39、tring code) this.code = code;13.public String getName() 14. return name;15.16. public void setName(String name) 17. = name;18.19. public String getType() 20. return type;21.22. public void setType(String type) 23. this.type = type;24.25. public String getBrand() 26. return brand;27.28.publ
40、ic void setBrand(String brand) 29. this.brand = brand;30.31. public String getPic() 32. return pic;33.34. public void setPic(String pic) 35. this.pic = pic;36.37. public int getNum() 38. return num;39.40. public void setNum(int num) 41. this.num = num;42.43.public double getPrice() 44. return price;
41、45.46. public void setPrice(double price) 47. this.price = price;48.49. public double getSale() 50. return sale;51.52. public void setSale(double sale) 53. this.sale = sale;54.55. public String getIntro() 56. return intro;57.58. public void setIntro(String intro) 59. ro = intro;60.61. public
42、 int getStatus() 62. return status;63.64. public void setStatus(int status) 65. this.status = status;66.創(chuàng)建商品操作類ProductOpr。新建包。右擊左側(cè)的樹型項(xiàng)目窗口的“src”,在彈出的菜單中選擇“new-Pagkage”,在彈出的對話框中,輸入包名,即完成包的創(chuàng)建。用此方法分別創(chuàng)建包,、用來存放實(shí)現(xiàn)接口的數(shù)據(jù)處理類;新建商品管理相關(guān)功能接口。右擊,選擇菜單new-interface,如圖所示。在彈出的對話框中,輸入類名ProductDao,完成創(chuàng)建。自動生成代碼如下:package
43、com.digitalweb.dao;public interface ProductDao 修改上述代碼,結(jié)果如下:package com.digitalweb.dao;import java.util.List;import com.digitalweb.model.Product;public interface ProductDao public List list();程序說明:第2-3行:引入包;第5行:創(chuàng)建接口方法,顯示商品列表信息;3. 新建商品管理處理功能實(shí)現(xiàn)類。右擊src,在彈出菜單中選擇“new-class”,彈出如圖5-2-12對話框輸入類名ProductDaoImpl
44、,點(diǎn)擊“Browse”按鈕,在彈出的如圖5-2-13顯示的對話框的“choose a type”中輸入要繼承的類名“SuperOpr”,點(diǎn)擊“OK”按鈕完成添加;選擇需要實(shí)現(xiàn)的接口類。在如圖中的Add按鈕 在彈出的對話框的“choose interface”文本框中輸入接口類名稱“ProductDao”(如圖),點(diǎn)擊“Ok”完成添加。點(diǎn)擊“finish”按鈕完成類的創(chuàng)建(如圖。)自動生成代碼如下:1. package com.digitalweb.impl;2. import java.util.List;3. import com.digitalweb.dao.ProductDao;4. i
45、mport com.digitalweb.dao.SuperOpr;5. import com.digitalweb.model.Product;6. public class ProductDaoImpl extends SuperOpr implements ProductDao 7. public List list() 8. / TODO Auto-generated method stub9. return null;10. 11.程序說明:第6行:顯示商品管理接口類實(shí)現(xiàn),繼承SuperOpr類;第7-10行:實(shí)現(xiàn)商品顯示方法代碼。4. 完善商品信息列表顯示的相關(guān)代碼。在上述代碼的l
46、ist方法中添加代碼,實(shí)現(xiàn)商品信息顯示。完成后代碼如下:package com.digitalweb.impl;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.digitalweb.dao.ProductDao;import com.digitalweb.dao.SuperOpr;import com.digitalweb.model.Product;8. import com.mysql.jdbc.PreparedStatement;9. public class
47、 ProductDaoImpl extends SuperOpr implements ProductDao 10. public List list() 11. / TODO Auto-generated method stub12. sql = select * from product_info where status = 1;13. ArrayList list = new ArrayList();14. try 15. psmt = (PreparedStatement) con.prepareStatement(sql);16. rs = psmt.executeQuery();
48、17. while (rs.next() 18. Product p = new Product();19. p.setBrand(rs.getString(brand);20. p.setCode(rs.getString(code);21. p.setId(rs.getInt(id);22. p.setIntro(rs.getString(intro););23.p.setName(rs.getString(name);24.p.setNum(rs.getInt(num);25. p.setPic(rs.getString(pic);26. p.setPrice(rs.getDouble(
49、price);27. p.setSale(rs.getDouble(sale);28. p.setStatus(1);29. p.setType(rs.getString(type);30. list.add(p);31.32. catch (SQLException e) 33. / TODO Auto-generated catch block34. e.printStackTrace();35.36. return list;顯示商品信息到頁面。1. 添加page指令,引入相關(guān)包。代碼如下:2. 添加腳本,讀取商品列表信息。顯示商品信息層HTML代碼為:1. 2.3. 4.5. 經(jīng)濟(jì)高效,超低成本! 四葉草價(jià):6.7.8.促銷信息: 直降9.效果圖如下:在層代碼前添加腳本代碼獲取商品
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流園區(qū)中的多式聯(lián)運(yùn)組織與管理
- 現(xiàn)代辦公環(huán)境下的溝通技巧與團(tuán)隊(duì)合作
- 生產(chǎn)中的柔性管理策略及實(shí)踐應(yīng)用
- Unit 1 Sports and Game Lesson 3(說課稿)-2024-2025學(xué)年人教新起點(diǎn)版英語四年級上冊
- 25 王戎不取道旁李(說課稿)-2024-2025學(xué)年統(tǒng)編版語文四年級上冊
- 2024年六年級品社下冊《可怕的物種入侵》說課稿2 蘇教版
- Unit7 Protect the Earth 第一課時(shí)(說課稿)2024-2025學(xué)年譯林版(三起)英語六年級上冊
- 2023二年級語文上冊 第七單元 語文園地七配套說課稿 新人教版
- 2024年四年級英語下冊 Unit 3 All about Me Lesson 1 How Are You5說課稿 冀教版(三起)
- 5一個(gè)豆莢里的五粒豆 第一課時(shí)(說課稿)-2024-2025學(xué)年四年級上冊語文統(tǒng)編版
- 2025年合資經(jīng)營印刷煙包盒行業(yè)深度研究分析報(bào)告
- 天津市五區(qū)縣重點(diǎn)校2024-2025學(xué)年高一上學(xué)期1月期末聯(lián)考試題 化學(xué) 含答案
- 吉林省吉林市普通中學(xué)2024-2025學(xué)年高三上學(xué)期二模試題 生物 含答案
- 人教版高一數(shù)學(xué)上冊期末考試試卷及答案
- 安全學(xué)原理第2版-ppt課件(完整版)
- 項(xiàng)目部組織機(jī)構(gòu)框圖(共2頁)
- 機(jī)動車登記證書
- 彈性力學(xué)第十一章彈性力學(xué)的變分原理
- 鉭鈮礦開采項(xiàng)目可行性研究報(bào)告寫作范文
- 小升初數(shù)學(xué)銜接班優(yōu)秀課件
- 出口食品生產(chǎn)企業(yè)備案自我評估表
評論
0/150
提交評論