Java程序設(shè)計(jì)教程(第2版) 課件 張延軍 第12-14章 JDBC編程技術(shù)、排隊(duì)叫號系統(tǒng)的分析和設(shè)計(jì)、排隊(duì)叫號系統(tǒng)的編程實(shí)現(xiàn)_第1頁
Java程序設(shè)計(jì)教程(第2版) 課件 張延軍 第12-14章 JDBC編程技術(shù)、排隊(duì)叫號系統(tǒng)的分析和設(shè)計(jì)、排隊(duì)叫號系統(tǒng)的編程實(shí)現(xiàn)_第2頁
Java程序設(shè)計(jì)教程(第2版) 課件 張延軍 第12-14章 JDBC編程技術(shù)、排隊(duì)叫號系統(tǒng)的分析和設(shè)計(jì)、排隊(duì)叫號系統(tǒng)的編程實(shí)現(xiàn)_第3頁
Java程序設(shè)計(jì)教程(第2版) 課件 張延軍 第12-14章 JDBC編程技術(shù)、排隊(duì)叫號系統(tǒng)的分析和設(shè)計(jì)、排隊(duì)叫號系統(tǒng)的編程實(shí)現(xiàn)_第4頁
Java程序設(shè)計(jì)教程(第2版) 課件 張延軍 第12-14章 JDBC編程技術(shù)、排隊(duì)叫號系統(tǒng)的分析和設(shè)計(jì)、排隊(duì)叫號系統(tǒng)的編程實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第12周JDBC編程技術(shù)11關(guān)系數(shù)據(jù)庫2SQL語句4JDBC編程學(xué)習(xí)提綱3MySQL數(shù)據(jù)庫21.關(guān)系數(shù)據(jù)庫數(shù)據(jù)庫(Database)指的是以一定方式儲存在存儲器中、能為多個(gè)用戶共享、冗余度小、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。主流的關(guān)系數(shù)據(jù)庫有Oracle、IBMDB2、MicrosoftSQLServer、Sybase、MySQL等。一個(gè)數(shù)據(jù)庫通常包含一個(gè)或多個(gè)表。表(Table):數(shù)據(jù)庫中用來存儲數(shù)據(jù)的對象,是有結(jié)構(gòu)的數(shù)據(jù)的集合。先定義表的結(jié)構(gòu)(表中每一列的數(shù)據(jù)類型、長度、能否為空、是否唯一等)、主鍵、外鍵等信息。定義了表結(jié)構(gòu),就能向表中輸入數(shù)據(jù)。1.1數(shù)據(jù)庫基本知識31.關(guān)系數(shù)據(jù)庫所有數(shù)據(jù)庫廠商都提供API操作接口,以方便軟件開發(fā)人員連接數(shù)據(jù)庫,完成對數(shù)據(jù)庫中數(shù)據(jù)的存取等操作。常用數(shù)據(jù)庫編程接口有ODBC(RDO、ADO)、JDBC等。1.2數(shù)據(jù)庫編程接口41.關(guān)系數(shù)據(jù)庫ODBC。Microsoft公司的ODBC(OpenDataBaseConnectivity)是目前使用最廣的、訪問關(guān)系數(shù)據(jù)庫的編程接口API。1.2數(shù)據(jù)庫編程接口61關(guān)系數(shù)據(jù)庫2SQL語句4JDBC編程學(xué)習(xí)提綱3MySQL數(shù)據(jù)庫72.SQL語句

SQL(結(jié)構(gòu)化查詢語言)是用于執(zhí)行查詢的語法,但是SQL語言也包含用于更新數(shù)據(jù)(update)、插入記錄(insertinto)和刪除記錄(delete)的語法。SQL教程推薦使用全部免費(fèi)的Web技術(shù)教程網(wǎng)站-W3School,網(wǎng)址:/sql/index.asp。

2.1SQL語句82.SQL語句

示例數(shù)據(jù)庫SC中有四個(gè)表:學(xué)生表、學(xué)院表、學(xué)生選課表、課程表。2.2數(shù)據(jù)庫SC和SQL語句92.SQL語句1.顯示student表中所有記錄。(選擇)select*fromstudent;2.顯示所有女生的信息,查詢結(jié)果按學(xué)號升序排序。(排序)SELECT*FROMstudentWHEREssex='女'ORDERBYsno3.顯示所有學(xué)生的學(xué)號、姓名、性別。(投影)SELECTsno,sname,ssexFROMstudent4.在student表中插入一條記錄(插入)insertintostudentvalues(202101001,'測試',4,'男','2002-10-22')2.2數(shù)據(jù)庫SC和SQL語句102.SQL語句5.將student表中學(xué)號為202101001的學(xué)生的性別修改為女(修改)。updatestudentsetssex='女'wheresno='202101001'6.將student表中學(xué)號為202101001的學(xué)生刪除(刪除)。deletefromstudentwheresno='202101001'7.查詢所有學(xué)生的姓名、課程名稱、成績等信息。(三個(gè)表通過外鍵連接)SELECTsname,cname,sc.gradefromstudents,sc,coursecWHEREs.sno=sc.snoANDo=o2.2數(shù)據(jù)庫SC和SQL語句112.SQL語句

示例數(shù)據(jù)庫hr有七個(gè)表:employees職工表、departments部門表、Locations地址表、countries國家表、regions區(qū)域表、jobs職位表、job_history工作經(jīng)歷表。2.3數(shù)據(jù)庫HR和SQL語句122.SQL語句1.查詢部門名稱為Shipping的員工的編號、姓名及所從事的工作。SELECTe.employee_id,e.first_name,j.job_titlefromemployeese,departmentsd,jobsjWHEREe.department_id=d.department_idANDd.department_name='Shipping'ANDe.job_id=j.job_id2.顯示經(jīng)理是KING的員工姓名,工資。selectfirst_name,salaryfromemployeeswheremanager_id=(selectemployee_idfromemployeeswherelast_name='King')2.2數(shù)據(jù)庫SC和SQL語句132.SQL語句3.工資最高的員工姓名和工資。selectfirst_name,salaryfromemployeeswheresalary=(selectmax(salary)fromemployees)4.查詢員工的編號,姓名,以及部門名稱,包括沒有員工的部門。SELECTe.employee_id,e.first_name,d.department_namefromemployeeseRIGHTjoindepartmentsdone.department_id=d.department_id2.2數(shù)據(jù)庫SC和SQL語句142.SQL語句5.查詢員工的編號,姓名,以及部門名稱,包括不屬于任何部門的員工。SELECTe.employee_id,e.first_name,d.department_namefromemployeeseleftjoindepartmentsdone.department_id=d.department_id6.查詢所有工資大于等于6000元的員工姓名及其直接領(lǐng)導(dǎo)人的姓名、工資。要求查詢結(jié)果中在員工和直接領(lǐng)導(dǎo)人之間加入字符串“worksfor”。SELECTe1.first_name,'worksfor',e2.first_name,e2.salaryfromemployeese1,employeese2WHEREe1.manager_id=e2.employee_idANDe1.salary>=60002.2數(shù)據(jù)庫SC和SQL語句152.SQL語句7.查詢部門名稱為Shipping的員工的編號、姓名及所從事的工作。SELECTe.employee_id,e.first_name,e.last_name,e.job_idFROMdepartmentsd,employeeseWHEREd.department_name='Shipping'ANDe.department_id=d.department_id2.2數(shù)據(jù)庫SC和SQL語句161關(guān)系數(shù)據(jù)庫2SQL語句4JDBC編程學(xué)習(xí)提綱3MySQL數(shù)據(jù)庫173.MySQL數(shù)據(jù)庫

MySQLCommunityServer8.0.26(社區(qū)版)下載地址:/downloads/mysql/。Installer版本(推薦),適合初學(xué)者。注意:在Window10操作系統(tǒng)中安裝MySQL數(shù)據(jù)庫有2個(gè)依賴,需要提前安裝:Microsoft.NETFramework4.5和MicrosoftVisualC++2019。ZIPArchive版本:mysql-8.0.26-winx64.zip。需要以管理員身份進(jìn)入命令行進(jìn)行手動安裝和配置。3.1MySQL安裝版的下載、安裝與配置183.MySQL數(shù)據(jù)庫

安裝結(jié)束可以從“開始-程序-MySQLInstaller-Community”啟動安裝器再次對MySQL數(shù)據(jù)庫服務(wù)器進(jìn)行Add、Modify、Update、Remove等操作。MySQL在Windows操作系統(tǒng)默認(rèn)的安裝路徑:C:\ProgramFiles\MySQL\MySQLServer8.0,其中bin文件夾中存放MySQL常用命令和管理工具。mysql.exe:MySQL自帶命令行管理工具。mysqld.exe:服務(wù)器管理工具,一般用于MySQL安裝、卸載和初始化。3.1MySQL安裝版的下載、安裝與配置193.MySQL數(shù)據(jù)庫將mysql-8.0.26-winx64.zip解壓縮到硬盤上,配置環(huán)境變量path。在E:\mysql-8.0.26-winx64建立文本文件my.ini并編輯內(nèi)容。以管理員身份運(yùn)行cmd。初始化MySQL,生成root用戶的初始隨機(jī)密碼。E:\mysql-8.0.26-winx64\bin>mysqld--initialize--console初始化,-insecure表示忽略安全性,root用戶的初始密碼為空。E:\mysql-8.0.26-winx64\bin>mysqldmysqld--initialize-insecure3.2MySQL壓縮版的下載、安裝與配置203.MySQL數(shù)據(jù)庫安裝MySQL服務(wù)E:\mysql-8.0.26-winx64\bin>Mysqld--install刪除MySQL服務(wù)E:\mysql-8.0.26-winx64\bin>scdeletemysql啟動MySQL服務(wù)E:\mysql-8.0.26-winx64\bin>netstart3.2MySQL壓縮版的下載、安裝與配置213.MySQL數(shù)據(jù)庫修改root用戶的密碼。E:\mysql-8.0.26-winx64\bin>mysql-uroot-p輸入上面產(chǎn)生的隨機(jī)密碼,進(jìn)入MySQL提示符:mysql>ALTERUSERroot@localhostIDENTIFIEDBY’123456’;將不好記的隨機(jī)密碼改為自己的密碼,如123456ALTERUSERroot@localhostIDENTIFIEDwithmysql_native_passwordby'123456';3.2MySQL壓縮版的下載、安裝與配置223.MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫的管理可以通過三種方式:通過命令行管理工具mysql和mysqladmin;通過Web方式;通過MySQL圖形化管理工具。MySQL本身自帶命令行管理工具、圖形管理工具M(jìn)ySQLWorkBench。MySQL自帶的命令行管理工具對使用者要求較高,用戶體驗(yàn)較差。MySQLWorkBench在功能和易用性方面比不上第三方開發(fā)的管理工具。推薦使用MySQL圖形化管理工具有Navicat、HeidiSQL、phpMyAdmin、SQLYog等,建議從功能易用、是否收費(fèi)、運(yùn)行效率、中文界面等方面綜合選擇。3.3MySQL數(shù)據(jù)庫管理工具233.MySQL數(shù)據(jù)庫下載和安裝/installers/HeidiSQL_295_Setup.exe新建連接在會話管理器中下面窗口中輸入主機(jī)名/IP地址、用戶、密碼、端口、數(shù)據(jù)庫等信息,可以單擊“打開”即可進(jìn)入MySQL數(shù)據(jù)庫管理主界面。3.3MySQL數(shù)據(jù)庫管理工具243.MySQL數(shù)據(jù)庫HeidiSQL主界面包括菜單欄、工具欄、數(shù)據(jù)庫樹、編輯器、狀態(tài)欄等內(nèi)容。3.3MySQL數(shù)據(jù)庫管理工具253.MySQL數(shù)據(jù)庫HeidiSQL基本操作:數(shù)據(jù)庫操作:數(shù)據(jù)庫新建、刪除、修改等。表操作:在數(shù)據(jù)庫中新建表、修改表、刪除表、清除表中的數(shù)據(jù)等。數(shù)據(jù)操作:插入行、刪除行、修改數(shù)據(jù)等操作。查詢操作:輸入SQL語句執(zhí)行。SQL腳本:導(dǎo)出數(shù)據(jù)庫為SQL腳本、運(yùn)行SQL腳本等。SQL腳本是可以自動執(zhí)行SQL語句的文本文件。本教材提供了sc.sql和hr.sql兩個(gè)數(shù)據(jù)庫的SQL腳本文件。在MySQL管理工具中導(dǎo)入SQL腳本可以自動建立數(shù)據(jù)庫、表結(jié)構(gòu)、導(dǎo)入數(shù)據(jù)等操作。3.3MySQL數(shù)據(jù)庫管理工具261關(guān)系數(shù)據(jù)庫2SQL語句4JDBC編程學(xué)習(xí)提綱3MySQL數(shù)據(jù)庫274.JDBC編程JDK中提供的JDBCAPI主要包含在java.sql包和javax.sql包中。JDBC編程主要涉及DriverManager、Driver、Connection、Statement、ResultSet、PreparedStatement等類或接口。4.1JDBCAPI介紹284.JDBC編程在MySQL中建立測試數(shù)據(jù)庫。建議通過導(dǎo)入sc.sql迅速建立測試數(shù)據(jù)庫,也可以手工建立測試數(shù)據(jù)庫sc。下載JDBC驅(qū)動程序。從Internet下載MySQL的JDBC驅(qū)動程序。MySQL8.0.26要求JDBC驅(qū)動程序?yàn)閙ysql-connector-java-8.0.26-bin.jar,而非原來mysql-connector-java-5.0.4-bin.jar。將jar文件復(fù)制到項(xiàng)目中,然后添加到BuildPath中。4.2通過JDBC訪問MySQL數(shù)據(jù)庫294.JDBC編程加載驅(qū)動程序。通過Class.forName(JDBC驅(qū)動程序名)來創(chuàng)建驅(qū)動程序的實(shí)例,并注冊到JDBC驅(qū)動程序管理器。Class.forName("com.mysql.jdbc.Driver");//已經(jīng)不推薦使用Class.forName("com.mysql.cj.jdbc.Driver");建立Connection對象以連接數(shù)據(jù)庫。Stringurl="jdbc:mysql://localhost:3306/sc"。Connectionconn=DriverManager.getConnection(url,user,password);通過Connection對象的close()方法關(guān)閉數(shù)據(jù)庫連接。4.2通過JDBC訪問MySQL數(shù)據(jù)庫304.JDBC編程功能描述:本程序演示了JDBC訪問數(shù)據(jù)庫的步驟,用Statement對象向數(shù)據(jù)庫發(fā)送SQL語句,并對返回結(jié)果進(jìn)行處理。4.3用Statement實(shí)現(xiàn)靜態(tài)SQL語句編程314.JDBC編程功能描述:本程序在利用JDBC訪問數(shù)據(jù)庫過程中,采用PreparedStatement對象向數(shù)據(jù)庫發(fā)送SQL語句,并對返回結(jié)果進(jìn)行處理。4.412.3.4用PreparedStatement實(shí)現(xiàn)帶參數(shù)SQL語句編程敬請批評指正,謝謝!2023年第13周課程設(shè)計(jì)-排隊(duì)叫號模擬系統(tǒng)的分析和設(shè)計(jì)341課程設(shè)計(jì)需求分析2系統(tǒng)設(shè)計(jì)學(xué)習(xí)提綱3知識準(zhǔn)備351.課程設(shè)計(jì)需求分析課程設(shè)計(jì)是工科專業(yè)實(shí)踐教學(xué)的重要組成部分,是在教師指導(dǎo)下對學(xué)生進(jìn)行的階段性專業(yè)技術(shù)訓(xùn)練。課程設(shè)計(jì)是利用所學(xué)知識分析問題、解決問題的過程。課程設(shè)計(jì)在培養(yǎng)學(xué)生動手能力、綜合能力、實(shí)踐能力與創(chuàng)新精神的同時(shí),夯實(shí)了理論基礎(chǔ),完善了知識體系,加深了對技術(shù)的理解。1.1關(guān)于課程設(shè)計(jì)361.課程設(shè)計(jì)需求分析排隊(duì)叫號模擬系統(tǒng)應(yīng)用場景:某營業(yè)廳配一臺叫號機(jī),設(shè)置6個(gè)業(yè)務(wù)窗口,每個(gè)業(yè)務(wù)窗口均可辦理指定類型客戶的業(yè)務(wù)。根據(jù)業(yè)務(wù)流量,1-4號窗口暫定為普通窗口,5號窗口暫定為特殊窗口,6號窗口暫定為VIP窗口。1.2需求分析371.關(guān)于課程設(shè)計(jì)1.2需求分析381.課程設(shè)計(jì)需求分析業(yè)務(wù)辦理信息:今天累計(jì)接待客戶×××人,其中普通客戶×人,特殊客戶×人,VIP客戶×人。數(shù)據(jù)歸檔要求:每天辦理的窗口編號、窗口名稱、用戶號碼、接待時(shí)間等信息保存到一個(gè)文本文件中。語音播報(bào)叫號信息。1.3其它要求391課程設(shè)計(jì)需求分析2系統(tǒng)設(shè)計(jì)學(xué)習(xí)提綱3知識準(zhǔn)備402.系統(tǒng)設(shè)計(jì)操作系統(tǒng):Window1064位JDK版本:JDK11.0.3IDE環(huán)境:Eclipse2019-03(4.11)GUI組件:swing、WindowBuilder1.9.2日志組件:Log4j2.13.2文本轉(zhuǎn)語音組件:jacob-1.182.1技術(shù)方案412.系統(tǒng)設(shè)計(jì)根據(jù)需求分析,用Excel畫出界面草圖如下2.2界面設(shè)計(jì)421課程設(shè)計(jì)需求分析2系統(tǒng)設(shè)計(jì)學(xué)習(xí)提綱3知識準(zhǔn)備433.知識準(zhǔn)備單例模式(SingletonPattern)是Java中最簡單的設(shè)計(jì)模式之一。單例類負(fù)責(zé)實(shí)例化一個(gè)對象,確保這個(gè)對象是唯一的,必須為外界提供這一對象。一個(gè)營業(yè)廳只有一個(gè)叫號機(jī),正好符合單例模式。代碼實(shí)現(xiàn)如下:3.1單例模式443.知識準(zhǔn)備

與堆棧(Stack)一樣,隊(duì)列(Queue)是一種操作受限的線性表,支持FIFO(FirstInFirstOut)先進(jìn)先出,即:只能在隊(duì)尾插入元素,只能隊(duì)首刪除元素。我們可以用數(shù)組、ArrayList、LinkedList去模擬實(shí)現(xiàn)隊(duì)列。這里,我們選擇LinkedBlockingQueue,原因如下:LinkedBlockingQueue是線程安全的。由JDK類庫提供,經(jīng)過嚴(yán)格測試,穩(wěn)定高效。不要重復(fù)發(fā)明輪子。3.2LinkedBlockingQueue隊(duì)列453.知識準(zhǔn)備

我們可以查閱JDK文檔,掌握LinkedBlockingQueue的構(gòu)造方法和常用方法。3.2LinkedBlockingQueue隊(duì)列463.知識準(zhǔn)備

線程的反復(fù)創(chuàng)建、銷毀是非常耗費(fèi)系統(tǒng)資源的。線程池是預(yù)先創(chuàng)建線程的一種技術(shù)。線程池在還沒有任務(wù)到來之前,創(chuàng)建并啟動一定數(shù)量的線程,并使其進(jìn)入睡眠狀態(tài),放入空閑隊(duì)列中。當(dāng)大量請求到來之后,線程池為每一次請求分配一個(gè)空閑線程,執(zhí)行指定的線程。線程執(zhí)行完畢并不銷毀線程對象,直接放回線程池空閑隊(duì)伍中。3.3可調(diào)度線程池473.知識準(zhǔn)備

這里,我們要模擬普通客戶、特殊客戶、VIP客戶的比例大約為:6:3:1,就要用到可調(diào)度線程池:可以指定每隔n秒啟動一個(gè)相應(yīng)類型的客戶線程。示例程序如下:3.3可調(diào)度線程池483.知識準(zhǔn)備

JList是一個(gè)遵循MVC模式設(shè)計(jì)和實(shí)現(xiàn)的列表組件。JList類的構(gòu)造方法如下:JList():構(gòu)造一個(gè)具有空的、只讀模型的JList。JList(Vector<?>listData):構(gòu)造一個(gè)JList,使其顯示指定Vector中的元素。適用于選項(xiàng)數(shù)目變化不定的應(yīng)用場合。JList常用方法如下:publicvoidsetListData(Vector<?>listData)publicvoidsetSelectedIndex(intindex)3.4JList應(yīng)用示例

493.知識準(zhǔn)備

【示例程序】JList應(yīng)用:單擊加入元素按鈕向JList中添加一個(gè)元素到最后,單擊刪除元素按鈕從JList中添加第一個(gè)元素。必須將JList放入JScrollPane中,JList才會根據(jù)選項(xiàng)自動出現(xiàn)垂直滾動條。jsp.setViewportView(jl);而不能使用jsp.add(jl)。3.4JList應(yīng)用示例

503.知識準(zhǔn)備

數(shù)據(jù)歸檔到

溫馨提示

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

最新文檔

評論

0/150

提交評論