開(kāi)發(fā)數(shù)據(jù)庫(kù)軟件 課件_第1頁(yè)
開(kāi)發(fā)數(shù)據(jù)庫(kù)軟件 課件_第2頁(yè)
開(kāi)發(fā)數(shù)據(jù)庫(kù)軟件 課件_第3頁(yè)
開(kāi)發(fā)數(shù)據(jù)庫(kù)軟件 課件_第4頁(yè)
開(kāi)發(fā)數(shù)據(jù)庫(kù)軟件 課件_第5頁(yè)
已閱讀5頁(yè),還剩59頁(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開(kāi)發(fā)數(shù)據(jù)庫(kù)軟件2一、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)過(guò)程數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)是在現(xiàn)成的DBMS上建立數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的過(guò)程。其特點(diǎn)是:數(shù)據(jù)量大、保存時(shí)間長(zhǎng),數(shù)據(jù)關(guān)聯(lián)復(fù)雜,用戶要求多樣化。從系統(tǒng)開(kāi)發(fā)角度來(lái)看,數(shù)據(jù)庫(kù)系統(tǒng)具有結(jié)構(gòu)特性和行為特性兩個(gè)方面。結(jié)構(gòu)特性設(shè)計(jì)(數(shù)據(jù)庫(kù)設(shè)計(jì))

1)是與數(shù)據(jù)模型所反映的實(shí)體及實(shí)體之間的聯(lián)系的靜態(tài)模型的設(shè)計(jì)。

2)設(shè)計(jì)各級(jí)數(shù)據(jù)庫(kù)模式,決定數(shù)據(jù)庫(kù)系統(tǒng)的信息內(nèi)容。行為特性設(shè)計(jì)(數(shù)據(jù)庫(kù)應(yīng)用軟件的開(kāi)發(fā))*

1)與數(shù)據(jù)庫(kù)狀態(tài)轉(zhuǎn)換有關(guān),是改變實(shí)體特性的操作。

2)決定數(shù)據(jù)庫(kù)系統(tǒng)的功能,是事務(wù)處理等應(yīng)用程序的設(shè)計(jì)。3一、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)過(guò)程第一步:規(guī)劃與需求分析第二步:系統(tǒng)設(shè)計(jì)第三步:邏輯設(shè)計(jì)第四步:應(yīng)用程序開(kāi)發(fā)(系統(tǒng)前臺(tái)設(shè)計(jì))第五步:系統(tǒng)打包發(fā)布與數(shù)據(jù)庫(kù)實(shí)施維護(hù)4第一步規(guī)劃與需求分析規(guī)劃與需求分析階段主要包括以下任務(wù):可行性分析需求分析編寫(xiě)項(xiàng)目計(jì)劃書(shū)5可行性分析可行性分析應(yīng)從經(jīng)濟(jì)方面、技術(shù)方面、系統(tǒng)運(yùn)行方面(管理體制、人員的適應(yīng)性及法律法規(guī))進(jìn)行分析和評(píng)價(jià)??尚行匝芯繄?bào)告的內(nèi)容包括:系統(tǒng)開(kāi)發(fā)背景對(duì)現(xiàn)有系統(tǒng)的分析系統(tǒng)目標(biāo)技術(shù)風(fēng)險(xiǎn)評(píng)價(jià)經(jīng)濟(jì)效益分析結(jié)論6需求分析通過(guò)檢查文檔資料、面談、問(wèn)卷調(diào)查、觀察業(yè)務(wù)流程等方法,分析:系統(tǒng)用戶對(duì)象的類(lèi)型和特點(diǎn)系統(tǒng)的運(yùn)行環(huán)境用戶的業(yè)務(wù)流程系統(tǒng)涉及的信息數(shù)據(jù)系統(tǒng)的功能設(shè)計(jì)……………..7編寫(xiě)項(xiàng)目計(jì)劃書(shū)項(xiàng)目計(jì)劃書(shū):把對(duì)于在項(xiàng)目開(kāi)發(fā)過(guò)程中各項(xiàng)工作的負(fù)責(zé)人員、開(kāi)發(fā)進(jìn)度、所需經(jīng)費(fèi)預(yù)算、所需軟硬件條件等問(wèn)題作出的安排記載下來(lái)。以便根據(jù)本計(jì)劃開(kāi)展和檢查本項(xiàng)目的開(kāi)發(fā)工作。項(xiàng)目計(jì)劃書(shū)、可行性分析報(bào)告和需求分析可參考《GB-T_8567-1988計(jì)算機(jī)軟件產(chǎn)品開(kāi)發(fā)文件編制指南》8一、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)過(guò)程第一步:規(guī)劃與需求分析第二步:系統(tǒng)設(shè)計(jì)第三步:邏輯設(shè)計(jì)第四步:應(yīng)用程序開(kāi)發(fā)(系統(tǒng)前臺(tái)設(shè)計(jì))第五步:系統(tǒng)打包發(fā)布與數(shù)據(jù)庫(kù)實(shí)施維護(hù)9第二步系統(tǒng)設(shè)計(jì)1.確定系統(tǒng)功能,劃分功能模塊,畫(huà)出系統(tǒng)的功能模塊圖10第二步系統(tǒng)設(shè)計(jì)2.畫(huà)出詳細(xì)的系統(tǒng)業(yè)務(wù)流程圖,其目的是確定系統(tǒng)數(shù)據(jù)庫(kù)中的有關(guān)的實(shí)體。1112第二步系統(tǒng)設(shè)計(jì)3.規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫(kù)實(shí)體后,構(gòu)建系統(tǒng)開(kāi)發(fā)環(huán)境操作系統(tǒng):WindowsXP數(shù)據(jù)庫(kù):SQLServer2000/2005Java開(kāi)發(fā)包:JDK6.0開(kāi)發(fā)工具:Eclipse13第二步系統(tǒng)設(shè)計(jì)4.確定各個(gè)實(shí)體中包含的屬性,畫(huà)出各個(gè)實(shí)體對(duì)象的E-R圖14一、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)過(guò)程第一步:規(guī)劃與需求分析第二步:系統(tǒng)設(shè)計(jì)第三步:邏輯設(shè)計(jì)第四步:應(yīng)用程序開(kāi)發(fā)(系統(tǒng)前臺(tái)設(shè)計(jì))第五步:系統(tǒng)打包發(fā)布與數(shù)據(jù)庫(kù)實(shí)施維護(hù)15第三步邏輯設(shè)計(jì)針對(duì)數(shù)據(jù)庫(kù),根據(jù)設(shè)計(jì)好的E-R圖在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,設(shè)計(jì)各個(gè)數(shù)據(jù)表的結(jié)構(gòu)。字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵否功能描述ISBNvarchar13主鍵圖書(shū)編號(hào)typeIdint圖書(shū)類(lèi)別編號(hào)booknamevarchar40書(shū)名writervarchar21作者translatorvarchar30譯者publishervarchar50出版社datesmalldatetime出版時(shí)間pricemoney價(jià)格16第三步邏輯設(shè)計(jì)實(shí)體變成數(shù)據(jù)表,從而形成完整的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫(kù)模型可通過(guò)PowerDesigner數(shù)據(jù)庫(kù)設(shè)計(jì)軟件進(jìn)行建立。在實(shí)際中數(shù)據(jù)庫(kù)也有自己的設(shè)計(jì)工具,比較常用的就是Sybase的PowerDesigner開(kāi)發(fā)工具,此工具可以方便的做各種設(shè)計(jì)。啟動(dòng)之后,可以使用此工具,進(jìn)行數(shù)據(jù)庫(kù)的建模設(shè)計(jì)。17第三步邏輯設(shè)計(jì)18PowerDesigner軟件的使用*操作步驟:1、File→newmodel→選擇數(shù)據(jù)庫(kù)類(lèi)型(MSsqlserver)→選擇物理數(shù)據(jù)模型(PhysicalDataModel)19PowerDesigner軟件的使用*操作步驟:2、創(chuàng)建表(Table)20PowerDesigner軟件的使用*操作步驟:3、數(shù)據(jù)表之間的關(guān)系建立學(xué)生信息表和班級(jí)信息表中存在著關(guān)系,為了維護(hù)主一外鍵的關(guān)系,可以直接在此工具中進(jìn)行拖拽(Reference)的操作。21PowerDesigner軟件的使用*操作步驟:4、創(chuàng)建數(shù)據(jù)庫(kù)腳本得到關(guān)系之后,就可以通過(guò)PowerDesigner工具進(jìn)行數(shù)據(jù)庫(kù)腳本的創(chuàng)建了這是PD軟件在數(shù)據(jù)庫(kù)設(shè)計(jì)上的最大好處:自動(dòng)生成數(shù)據(jù)庫(kù)腳本文件菜單Database→GenerateDatabase(Ctrl+G)5、生成數(shù)據(jù)庫(kù)測(cè)試數(shù)據(jù)Database→GenerateTestdata22PowerDesigner軟件的使用*PD軟件也可以從數(shù)據(jù)庫(kù)中導(dǎo)出數(shù)據(jù)表的結(jié)構(gòu)。要完成此項(xiàng)操作,需要配置系統(tǒng)中的ODBC數(shù)據(jù)源ODBC:控制面板→管理工具→數(shù)據(jù)源(ODBC)23PowerDesigner軟件的使用*ODBC→系統(tǒng)DSN→添加數(shù)據(jù)源連接操作:File→ReverseEngineer→Database24一、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)過(guò)程第一步:規(guī)劃與需求分析第二步:系統(tǒng)設(shè)計(jì)第三步:邏輯設(shè)計(jì)第四步:應(yīng)用程序開(kāi)發(fā)(系統(tǒng)前臺(tái)設(shè)計(jì))第五步:系統(tǒng)打包發(fā)布與數(shù)據(jù)庫(kù)實(shí)施維護(hù)25第四步系統(tǒng)前臺(tái)開(kāi)發(fā)前臺(tái)開(kāi)發(fā)也就是數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā),包括了應(yīng)用程序的設(shè)計(jì)、編碼、調(diào)試和試運(yùn)行過(guò)程。應(yīng)用程序開(kāi)發(fā)的主要工作:應(yīng)用程序編寫(xiě)組織數(shù)據(jù)入庫(kù)應(yīng)用程序的調(diào)試與試運(yùn)行應(yīng)用程序編譯語(yǔ)言的選擇C、Java本課程以Java語(yǔ)言講解26第五步數(shù)據(jù)庫(kù)系統(tǒng)維護(hù)運(yùn)行維護(hù)階段的任務(wù)包括:維護(hù)數(shù)據(jù)庫(kù)的安全性和完整性:檢查系統(tǒng)安全性是否受到侵犯,及時(shí)調(diào)整授權(quán)和密碼,實(shí)施系統(tǒng)轉(zhuǎn)儲(chǔ)與后備,發(fā)生故障及時(shí)恢復(fù)。監(jiān)測(cè)并改善數(shù)據(jù)庫(kù)性能:對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)空間狀況及響應(yīng)時(shí)間進(jìn)行分析評(píng)價(jià),結(jié)合用戶反應(yīng)確定改進(jìn)措施。必要時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行重新組織和重新構(gòu)造。根據(jù)用戶要求對(duì)數(shù)據(jù)庫(kù)現(xiàn)有功能進(jìn)行擴(kuò)充。數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)的工作就是DBA的工作。27二、數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)(JDBC)*數(shù)據(jù)庫(kù)的開(kāi)發(fā)僅僅是整個(gè)軟件開(kāi)發(fā)的一部分(后臺(tái)部分),而我們看到的界面是PD、SQLserver所不能做到的,這就要求引入編程開(kāi)發(fā)軟件開(kāi)發(fā)系統(tǒng)的前臺(tái),這就出現(xiàn)了數(shù)據(jù)庫(kù)前后臺(tái)的連接問(wèn)題。以Java語(yǔ)言為例,進(jìn)行JDBC講解:認(rèn)識(shí)JDBCJDBC的操作類(lèi)型連接數(shù)據(jù)庫(kù)JDBC的CRUD操作28二、數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)(JDBC)現(xiàn)在我們?cè)谶M(jìn)行軟件系統(tǒng)項(xiàng)目開(kāi)發(fā)時(shí),較多是圍繞著數(shù)據(jù)庫(kù)進(jìn)行的。因此,編程語(yǔ)言一定要與數(shù)據(jù)庫(kù)有互操作才有存在意義。而Java就在自身內(nèi)部封裝了數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)——JDBC。JDBC中所有的操作代碼都是固定的,要熟練掌握代碼編寫(xiě)。292.1認(rèn)識(shí)JDBCJDBC(JavaDataBaseConnectivity):Java數(shù)據(jù)庫(kù)連接技術(shù),可以將它理解為一種數(shù)據(jù)庫(kù)存取的綜合技術(shù)。JDBC屬于Java中的一種服務(wù),主要是規(guī)定出了JDBC訪問(wèn)的標(biāo)準(zhǔn)形式。JDBC內(nèi)嵌于Java中,提供存取關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)庫(kù)。其主要由兩部分組成:JDBCAPIJDBC驅(qū)動(dòng)程序接口302.1認(rèn)識(shí)JDBCJDBCAPIjava.sql.Drivermanager:此類(lèi)取得Connection的接口對(duì)象java.sql.Connection:表示一個(gè)數(shù)據(jù)庫(kù)的連接java.sql.Statement:表示數(shù)據(jù)庫(kù)的一個(gè)操作java.sql.PreparedStatement

:是Statement的子接口,可以高效地完成數(shù)據(jù)庫(kù)操作java.sql.ResultSet:保存所有的返回?cái)?shù)據(jù)JDBC驅(qū)動(dòng)程序接口JDBC驅(qū)動(dòng)程序API是面向驅(qū)動(dòng)程序開(kāi)發(fā)人員的編程接口,不同的數(shù)據(jù)庫(kù),驅(qū)動(dòng)程序不相同,但是每個(gè)驅(qū)動(dòng)程序都要提供java.sql.Connection等這些接口的實(shí)現(xiàn)方法。312.2JDBC的操作類(lèi)型使用JDBC技術(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接和訪問(wèn),按照操作類(lèi)型的不同,主要有三種使用情況:JDBC-ODBC橋連接JDBC連接JDBC網(wǎng)絡(luò)連接322.2JDBC的操作類(lèi)型JDBC-ODBC橋連接此種方式利用微軟公司定義的ODBC(開(kāi)放數(shù)據(jù)庫(kù)連接)對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的通用接口來(lái)訪問(wèn)操作數(shù)據(jù)庫(kù)。SUN充分考慮到ODBC的技術(shù),以此種方式繼續(xù)使用ODBC技術(shù)。操作方式:程序→JDBC→ODBC→數(shù)據(jù)庫(kù)為了使用這種方式連接和訪問(wèn)數(shù)據(jù)庫(kù),需在Windows系統(tǒng)中創(chuàng)建與數(shù)據(jù)庫(kù)對(duì)應(yīng)的數(shù)據(jù)源。

特點(diǎn):由于此操作形式中要經(jīng)過(guò)ODBC,其連接性能受到影響,一般不采用。332.2JDBC的操作類(lèi)型JDBC連接方式由各個(gè)數(shù)據(jù)庫(kù)生產(chǎn)商根據(jù)各自產(chǎn)品數(shù)據(jù)庫(kù)進(jìn)行驅(qū)動(dòng)開(kāi)發(fā)。操作方式:程序→JDBC→數(shù)據(jù)庫(kù)特點(diǎn):由于程序直接通過(guò)JDBC連接數(shù)據(jù)庫(kù),因此在連接性能上效率較高。342.2JDBC的操作類(lèi)型JDBC網(wǎng)絡(luò)連接方式在開(kāi)發(fā)中,不可能每個(gè)主機(jī)上都有一個(gè)數(shù)據(jù)庫(kù)服務(wù),必須連接到同一的數(shù)據(jù)庫(kù)服務(wù)器,因此就必須使用JDBC的網(wǎng)絡(luò)連接方式。這種連接方式的驅(qū)動(dòng)程序也是由數(shù)據(jù)庫(kù)生成廠商提供以上可以看到,使用JDBC進(jìn)行數(shù)據(jù)庫(kù)連接,其關(guān)鍵在于必須提供一個(gè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。各個(gè)數(shù)據(jù)庫(kù)都有各自的JDBC驅(qū)動(dòng)程序。如對(duì)SQLServer2000,可下載“SQLServer2000DriverforJDBC”。按照系統(tǒng)說(shuō)明書(shū)的要求,將驅(qū)動(dòng)程序路徑設(shè)置到classpath中,或者是Eclipse/MyEclipse的BuildPath中352.2JDBC的操作類(lèi)型1、設(shè)置classpathlib這個(gè)目錄里有三個(gè)jar文件:msbase.jar,mssqlserver.jar,msutil.jar,一定要記得把這三個(gè)文件copy到你所安裝的jdk下的jre目錄的ext目錄下。設(shè)置classpath,在路徑值中加入C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC\lib\msbase.jar;C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC\lib\mssqlserver.jar;C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC\lib\msutil.jar362.2JDBC的操作類(lèi)型2、Eclipse/MyEclipse37Eclipse/downloads/382.3連接數(shù)據(jù)庫(kù)(*)如果要進(jìn)行連接數(shù)據(jù)庫(kù)操作之前,要準(zhǔn)備一下幾個(gè)信息:數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序:就是驅(qū)動(dòng)程序配置包中“包.類(lèi)”sqlServer:com.microsoft.jdbc.sqlserver.SQLServerDriver數(shù)據(jù)庫(kù)的連接地址:不同的數(shù)據(jù)庫(kù)有不同的連接地址sqlServer:"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbName

";數(shù)據(jù)庫(kù)的用戶名:sa數(shù)據(jù)庫(kù)的密碼:123IP地址數(shù)據(jù)庫(kù)名稱(chēng)端口號(hào)39常見(jiàn)JDBC驅(qū)動(dòng)程序和URLJDBC-ODBC橋:Driver——sun.jdbc.odbc.JdbcOdbcDriverURL——jdbc:odbc:數(shù)據(jù)源名oracleDriver——oracle.jdbc.driver.OracleDriverURL——jdbc:oracle:thin:@主機(jī)名:1521:數(shù)據(jù)庫(kù)名SQLServerDriver——com.microsoft.jdbc.sqlserver.SQLServerDriverURL——jdbc:microsoft:sqlserver://主機(jī)名:1433;DatabaseName=數(shù)據(jù)庫(kù)名MySqlDriver——com.mysql.jdbc.DriverURL——jdbc:mysql://主機(jī)名:3306/數(shù)據(jù)庫(kù)名DB2Driver——com.ibm.db2.jdbc.app.DB2DriverURL——jdbc:db2://主機(jī)名:50002/數(shù)據(jù)庫(kù)名402.3連接數(shù)據(jù)庫(kù)(*)在相關(guān)信息準(zhǔn)備好以后,可以按以下步驟進(jìn)行數(shù)據(jù)庫(kù)的連接:加載類(lèi)的驅(qū)動(dòng)程序;通過(guò)DriverManager類(lèi)取得一個(gè)Connection接口的對(duì)象,表示取得連接;進(jìn)行若干數(shù)據(jù)表的操作;關(guān)閉數(shù)據(jù)庫(kù)(屬于資源操作,操作之后必須關(guān)閉)。412.3連接數(shù)據(jù)庫(kù)(*)-連接范例importjava.sql.Connection;importjava.sql.DriverManager;publicclassJDBCdemo{publicstaticfinalStringDBdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";publicstaticfinalStringDBurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DBtest";publicstaticfinalStringDBuser="sa";publicstaticfinalStringDBpassword="123";publicstaticvoidmain(String[]args)throwsException{ Connectionconn=null;//數(shù)據(jù)庫(kù)連接

Class.forName(DBdriver); //加載驅(qū)動(dòng)程序

conn=DriverManager.getConnection(DBurl,DBuser,DBpassword);//取得連接

System.out.println(conn); conn.close(); //關(guān)閉數(shù)據(jù)庫(kù)連接

}}如果此時(shí)的conn輸出不是null,或者沒(méi)有報(bào)錯(cuò),則表示連接成功。Demo1422.4數(shù)據(jù)庫(kù)操作(Statement)在取得了數(shù)據(jù)庫(kù)連接對(duì)象之后,就要進(jìn)行數(shù)據(jù)庫(kù)的操作。數(shù)據(jù)庫(kù)的操作是使用Statement接口來(lái)完成。要取得Statement接口的實(shí)例化對(duì)象,需要用到Connection中的一個(gè)方法。取得Statement接口對(duì)象:

StatementcreateStatement()throwsSQLException取得了Statement接口對(duì)象之后,就可以使用Statement接口提供的方法進(jìn)行數(shù)據(jù)庫(kù)的操作數(shù)據(jù)的更新操作intexecuteUpdate(Stringsql)throwsSQLException數(shù)據(jù)的查詢操作ResultSetexecuteQuery(Stringsql)throwsSQLException432.4數(shù)據(jù)庫(kù)操作增加數(shù)據(jù)增加數(shù)據(jù)的SQL語(yǔ)句“INSERTINTO表名(字段1,字段2)VALUES(值1,值2)”增加數(shù)據(jù)范例:注意:在進(jìn)行關(guān)閉的時(shí)候,一般的操作順序?yàn)椤跋却蜷_(kāi)的連接,再打開(kāi)的數(shù)據(jù)庫(kù)操作,在關(guān)閉時(shí)先關(guān)閉數(shù)據(jù)庫(kù)操作,再關(guān)閉連接”。以上是將增加內(nèi)容放到字符串中,定義在變量中?范例:SQL語(yǔ)句的拼湊寫(xiě)法Demo2Demo3442.4數(shù)據(jù)庫(kù)操作更新數(shù)據(jù)更新SQL語(yǔ)句“UPDATE表名SET字段1=值1,字段2=值2,….[where更新條件]”更新范例:Demo4452.4數(shù)據(jù)庫(kù)操作刪除數(shù)據(jù)刪除SQL語(yǔ)句“DELETEFROM表名[where刪除條件]”刪除范例:Demo5462.4數(shù)據(jù)庫(kù)操作查詢數(shù)據(jù)查詢數(shù)據(jù)使用的語(yǔ)法是SELECT語(yǔ)句,注意一點(diǎn):查詢操作是需要將數(shù)據(jù)表中的數(shù)據(jù)保存在內(nèi)存之中的,也就是將查詢結(jié)果保存在ResultSet接口之中查詢?nèi)繑?shù)據(jù)范例:注意在使用select語(yǔ)句的時(shí)候不能再使用“select*from”之類(lèi)的語(yǔ)句,需要寫(xiě)全數(shù)據(jù)表的列名稱(chēng);也能簡(jiǎn)化代碼。Demo6472.4數(shù)據(jù)庫(kù)操作PreparedStatementPreparedStatement接口是Statement的子接口,主要的是進(jìn)行數(shù)據(jù)的預(yù)處理操作?!癕r’Smith”的范例帶有“’”分號(hào)的SQL語(yǔ)句采用拼湊寫(xiě)法,會(huì)報(bào)錯(cuò),這就要使用PreparedStatement接口。要取得PreparedStatement接口實(shí)例化對(duì)象,就要使用Connection中的另一個(gè)方法:取得PreparedStatement接口對(duì)象:

PreparedStatementprepareStatement(Stringsql)throwsSQLException這里的SQL語(yǔ)句由于是預(yù)處理方式完成,所以使用“?”表示占位符Demo7482.4數(shù)據(jù)庫(kù)操作PreparedStatement的查詢操作查詢?nèi)繑?shù)據(jù):需要注意到是在程序中沒(méi)有使用任何的“?”,所以不用使用PreparedStatement進(jìn)行內(nèi)容的設(shè)置。模糊查詢:如果查詢的關(guān)鍵字為空,則返回的是全部數(shù)據(jù)查詢表中的記錄數(shù)查詢一張表中的全部記錄COUNT()以上的數(shù)據(jù)庫(kù)操作,是我們進(jìn)行項(xiàng)目開(kāi)發(fā)的基礎(chǔ)Demo8Demo9Demo10493項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)開(kāi)發(fā)背景與需求分析開(kāi)發(fā)背景(規(guī)劃):為了保持良好的人際關(guān)系,需要經(jīng)常與親戚、朋友、同學(xué)、同事等保持聯(lián)系。為了能夠快速查詢到聯(lián)系人的信息,可以創(chuàng)建一個(gè)通訊管理系統(tǒng)。此系統(tǒng)可以查詢、修改和刪除聯(lián)系人信息。為了防止信息被他人竊取,可以為系統(tǒng)設(shè)置密碼。此外,為記錄重要信息,提供備忘錄功能,實(shí)現(xiàn)查詢、修改和刪除備忘錄信息。在以上背景基礎(chǔ)上,進(jìn)一步對(duì)系統(tǒng)進(jìn)行需求分析,確定系統(tǒng)具備的功能。503項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)513項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)需求分析系統(tǒng)登錄功能添加用戶功能修改密碼功能添加分類(lèi)功能:對(duì)聯(lián)系人、備忘錄信息進(jìn)行分類(lèi)管理添加信息功能查詢信息功能修改信息功能刪除信息功能523項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)系統(tǒng)設(shè)計(jì)系統(tǒng)功能結(jié)構(gòu)圖533項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)系統(tǒng)設(shè)計(jì)根據(jù)系統(tǒng)功能結(jié)構(gòu)圖,確定系統(tǒng)中的各個(gè)實(shí)體及各自屬性,畫(huà)出個(gè)實(shí)體的E-R圖。通訊管理系統(tǒng)涉及用戶信息、聯(lián)系人分類(lèi)信息、聯(lián)系人詳細(xì)信息、備忘錄分類(lèi)信息、備忘錄詳細(xì)信息5個(gè)實(shí)體543項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)聯(lián)系人詳細(xì)信息表的結(jié)構(gòu)(tb_LinkMan)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度是否空值是否主鍵或約束說(shuō)明IDInt4不允許主鍵,自動(dòng)編號(hào)編號(hào)namevarchar20不允許無(wú)約束姓名sexvarchar10允許無(wú)約束性別employmentvarchar50允許無(wú)約束工作單位birthdaydatetime允許無(wú)約束出生日期principalshipvarchar20允許無(wú)約束職務(wù)telephonevarchar30允許無(wú)約束電話addressvarchar100允許無(wú)約束地址postalcodevarchar6允許無(wú)約束郵編QQvarchar20允許無(wú)約束qq號(hào)碼emailvarchar50允許無(wú)約束電子信箱SortIDint4不允許外鍵分類(lèi)號(hào)55聯(lián)系人分類(lèi)信息表的結(jié)構(gòu)(tb_sort)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度是否空值是否主鍵或約束說(shuō)明SortIDInt4不允許主鍵,自動(dòng)編號(hào)分類(lèi)號(hào)SortNamevarchar20不允許唯一分類(lèi)名稱(chēng)用戶信息表的結(jié)構(gòu)(tb_user)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度是否空值是否主鍵或約束說(shuō)明idInt4不允許主鍵,自動(dòng)編號(hào)編號(hào)usernamevarchar20不允許唯一用戶名passwordvarchar20不允許無(wú)約束密碼備忘錄分類(lèi)信息表的結(jié)構(gòu)(tb_type)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度是否空值是否主鍵或約束說(shuō)明TypeIDInt4不允許主鍵,自動(dòng)編號(hào)分類(lèi)號(hào)MemoTypevarchar10不允許唯一分類(lèi)名備忘錄詳細(xì)信息表的結(jié)構(gòu)(tb_memo)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度是否空值是否主鍵或約束說(shuō)明IDInt4不允許主鍵,自動(dòng)編號(hào)編號(hào)namevarchar10不允許無(wú)約束姓名mattervarchar200不允許無(wú)約束事件內(nèi)容MatterDatedatetime不允許無(wú)約束事件日期TypeIDint4不允許外鍵分類(lèi)號(hào)563項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)邏輯設(shè)計(jì)利用PD軟件進(jìn)行數(shù)據(jù)庫(kù)的建模,也就是數(shù)據(jù)庫(kù)設(shè)計(jì)573項(xiàng)目開(kāi)發(fā)案例一:通訊管理系統(tǒng)前臺(tái)程序設(shè)計(jì)數(shù)據(jù)層和業(yè)務(wù)層例如:添加聯(lián)系人信息客戶端添加聯(lián)系人客戶端業(yè)務(wù)功能數(shù)據(jù)功能

所謂的業(yè)務(wù)功能會(huì)牽扯到多個(gè)數(shù)據(jù)層的操作。在進(jìn)行項(xiàng)目設(shè)計(jì)時(shí),一般我們先進(jìn)行數(shù)據(jù)層(DAO,DataAccessObject)開(kāi)發(fā)。數(shù)據(jù)庫(kù)訪問(wèn)是否已經(jīng)存在查詢連接添加姓名、工作單位…….更新執(zhí)行更新命令執(zhí)行

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論