JSP數(shù)據(jù)庫應(yīng)用開發(fā)市公開課一等獎省賽課獲獎?wù)n件_第1頁
JSP數(shù)據(jù)庫應(yīng)用開發(fā)市公開課一等獎省賽課獲獎?wù)n件_第2頁
JSP數(shù)據(jù)庫應(yīng)用開發(fā)市公開課一等獎省賽課獲獎?wù)n件_第3頁
JSP數(shù)據(jù)庫應(yīng)用開發(fā)市公開課一等獎省賽課獲獎?wù)n件_第4頁
JSP數(shù)據(jù)庫應(yīng)用開發(fā)市公開課一等獎省賽課獲獎?wù)n件_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JSP數(shù)據(jù)庫應(yīng)用開發(fā)主講:索望suowang@成都信息工程學(xué)院網(wǎng)絡(luò)工程系/10/101JSP數(shù)據(jù)庫應(yīng)用開發(fā)第1頁內(nèi)容提要數(shù)據(jù)庫基礎(chǔ)知識SQL語言慣用SQL指令使用以及慣用SQL函數(shù)使用。慣用DBMS(數(shù)據(jù)庫管理系統(tǒng))JSP中使用JDBC開發(fā)數(shù)據(jù)庫應(yīng)用JDBCJDBC四種驅(qū)動類型JDBCAPI怎樣用JDBC連接并操作數(shù)據(jù)庫用JavaBean操作數(shù)據(jù)庫應(yīng)用實例2JSP數(shù)據(jù)庫應(yīng)用開發(fā)第2頁數(shù)據(jù)庫基礎(chǔ)知識數(shù)據(jù)庫按一定數(shù)據(jù)結(jié)構(gòu)組織并存放在計算機中一組相關(guān)數(shù)據(jù)集合。能為各種用戶共享,含有最小冗余;數(shù)據(jù)之間緊密聯(lián)絡(luò),而又有較高獨立性。數(shù)據(jù)庫管理系統(tǒng)管理數(shù)據(jù)庫系統(tǒng)軟件數(shù)據(jù)庫系統(tǒng)在計算機系統(tǒng)中引入數(shù)據(jù)庫后組成系統(tǒng)表(Table)一條統(tǒng)計(Record)數(shù)據(jù)庫3JSP數(shù)據(jù)庫應(yīng)用開發(fā)第3頁數(shù)據(jù)庫應(yīng)用開發(fā)介紹作為有效數(shù)據(jù)存放和組織管理工具,數(shù)據(jù)庫應(yīng)用日益廣泛當(dāng)前主流數(shù)據(jù)庫產(chǎn)品有Oracle、SQLServer、DB2和MySQL等各種。在數(shù)據(jù)庫開發(fā)領(lǐng)域中,需要掌握:SQL語言、數(shù)據(jù)訪問接口:JDBC使用。4JSP數(shù)據(jù)庫應(yīng)用開發(fā)第4頁SQL語言概述SQL(StructuredQueryLanguage)是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)標(biāo)準(zhǔn)語言,用于和各類數(shù)據(jù)庫連接,提供通用數(shù)據(jù)管理和查詢功能。SQL可認(rèn)為各種支持SQL-92標(biāo)準(zhǔn)數(shù)據(jù)庫管理系統(tǒng)(DBMS)所接收和處理,通常各種DBMS都提供圖形用戶界面,以使用戶直接對數(shù)據(jù)庫進行操作。但SQL語言本身并不是完整編程語言,還需要與其他高級編程語言配合,才能實現(xiàn)應(yīng)用程序?qū)?shù)據(jù)庫訪問操作。5JSP數(shù)據(jù)庫應(yīng)用開發(fā)第5頁SQL語句分類SQL分類描述數(shù)據(jù)定義語言(DDL)數(shù)據(jù)定義語言(DDL)用于定義、修改或者刪除數(shù)據(jù)庫對象,如CreateTable、DropTable、CreateIndex等數(shù)據(jù)操縱語言(DML)數(shù)據(jù)操縱語言(DML)用于訪問、建立或者操作在數(shù)據(jù)庫中已經(jīng)存在數(shù)據(jù),如Select、Insert、Update和Delete等等。數(shù)據(jù)控制語言(DCL)數(shù)據(jù)控制語言(DCL)管理對數(shù)據(jù)庫內(nèi)對象訪問權(quán)限授予、變更和回收,如Grant、Revoke等等。6JSP數(shù)據(jù)庫應(yīng)用開發(fā)第6頁基本SQL語句數(shù)據(jù)庫數(shù)據(jù)類型不一樣數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)類型是不一樣;慣用數(shù)據(jù)類型有:數(shù)字類型日期和時間類型字符和字符串類型對數(shù)據(jù)庫最慣用四大基本操作:查詢(Select)插入(Insert)更新(Update)刪除(Delete)也有稱為CRUD:Create(創(chuàng)建)、Read(讀取)、Update(更新)和Delete(刪除)

7JSP數(shù)據(jù)庫應(yīng)用開發(fā)第7頁SELECT語句假定:有一個數(shù)據(jù)表,Students基本句型一:(最簡單SELECT語句)SELECT

字段名FROM

數(shù)據(jù)表例1.功效說明:將Students表中全部字段取出來。SELECT*FROMStudents例2.功效說明:將Students表中姓名字段取出來SELECT姓名FROMStudents

Id姓名語文數(shù)學(xué)外語8JSP數(shù)據(jù)庫應(yīng)用開發(fā)第8頁SELECT語句基本句型二:使用條件查詢SELECT字段名FROM數(shù)據(jù)表WHERE

篩選條件SELECT*FROMStudentsWHERE數(shù)學(xué)>60;例1.功效說明:把全部數(shù)學(xué)成績大于60分統(tǒng)計選出來。SELECT*FROMStudentsWHERE數(shù)學(xué)=88or語文=88;例2.功效說明:把數(shù)學(xué)成績等于88分或者語文成績等于88分人選出來。例3.Like子句基本格式一:“_”匹配。 功效說明:每個下劃線匹配一個任意字符,注意只匹配一個字符。比如:姓名like‘_敏’,匹配姓名以“敏”字結(jié)尾且字?jǐn)?shù)等于二全部數(shù)據(jù)統(tǒng)計,如:“張敏”。

SELECT*FROM數(shù)據(jù)庫表WHERE姓名Like'_敏‘例4.Like子句基本格式二:“%”匹配。 比如:姓名Like‘%敏%’,匹配姓名中出現(xiàn)“敏”全部數(shù)據(jù)統(tǒng)計,如:“周惠敏”,“于敏”、“敏大”、“敏二”等。比如要在數(shù)據(jù)庫中查詢姓江人,只要利用一條SQL語句就能夠了,

SELECT*FROM數(shù)據(jù)庫表WHERE姓名Like'江%'。9JSP數(shù)據(jù)庫應(yīng)用開發(fā)第9頁SELECT語句基本句型三:進行排序SELECT字段名FROM數(shù)據(jù)表ORDERBY字段名SELECT*FROMStudentsORDERBY數(shù)學(xué)(注:從低到高排序) 例1.功效說明:從Students表中取出全部字段,并按數(shù)學(xué)成績排序。SELECT*FROMStudentsORDERBY數(shù)學(xué),語文 例2.功效說明:從Students表中取出全部字段,并按數(shù)學(xué)成績排序,假如數(shù)學(xué)成績相同則按照語文成績排序。SELECT*FROMStudentsORDERBY數(shù)學(xué)desc 例3.功效說明:從Students表中取出全部字段,并按數(shù)學(xué)成績倒序。注:從高到低排序10JSP數(shù)據(jù)庫應(yīng)用開發(fā)第10頁DELETE語句DELETE語句:從表中刪除一條或多條數(shù)據(jù)統(tǒng)計。基本語法:DELETEFROM

數(shù)據(jù)表WHERE

條件例子:功效說明:刪除全部數(shù)學(xué)成績?yōu)榱憬y(tǒng)計,假如沒有WHERE子句,則刪除全部統(tǒng)計。DELETEfromStudentsWHERE數(shù)學(xué)=011JSP數(shù)據(jù)庫應(yīng)用開發(fā)第11頁UPDATE語句UPDATE語句:更新表中一條或多條數(shù)據(jù)統(tǒng)計?;菊Z法:UPDATE

數(shù)據(jù)表SET

字段值=新值WHERE條件例1:將Students表中全部些人成績加10分UPDATEStudentsSET數(shù)學(xué)=數(shù)學(xué)+10例2:將姓名中含有敏人數(shù)學(xué)成績更新為100分UPDATEStudentsSET數(shù)學(xué)=100WHERE姓名like'%敏%'

12JSP數(shù)據(jù)庫應(yīng)用開發(fā)第12頁INSERT語句INSERTINTO語句:添加一條或多條數(shù)據(jù)統(tǒng)計到表中?;靖袷?:INSERTINTO

數(shù)據(jù)表VALUES(字段新值)基本格式2:INSERTINTO

數(shù)據(jù)表(字段一,字段二,……)VALUES

(字段新值)其中關(guān)鍵字兩種格式區(qū)分是:當(dāng)values含有數(shù)據(jù)庫表全部字段值,而且次序和數(shù)據(jù)庫字段一致時,就能夠省略數(shù)據(jù)庫表后面字段名稱。例1:INSERTINTOStudents(姓名,數(shù)學(xué))VALUES('周潤發(fā)',70)例2:INSERTINTOStudentsVALUES(56,'周潤發(fā)','網(wǎng)絡(luò)',70,80,90,89) 功效說明:該語句等價于:

INSERTINTOStudents(ID,姓名,專業(yè),語文,數(shù)學(xué),外語,專業(yè)課)VALUES(56,'周潤發(fā)','網(wǎng)絡(luò)',70,80,90,89)13JSP數(shù)據(jù)庫應(yīng)用開發(fā)第13頁數(shù)據(jù)庫管理系統(tǒng)(DBMS)Windows平臺:SQLServer開源平臺:MySQLJava平臺純Java數(shù)據(jù)庫Derby14JSP數(shù)據(jù)庫應(yīng)用開發(fā)第14頁使用JDBC開發(fā)數(shù)據(jù)庫應(yīng)用ODBC數(shù)據(jù)訪問接口開放式數(shù)據(jù)庫互連ODBC(OpenDataBaseConnectivity)是微軟企業(yè)開發(fā)一套開發(fā)數(shù)據(jù)庫系統(tǒng)應(yīng)用程序接口規(guī)范,它支持應(yīng)用程序以標(biāo)準(zhǔn)ODBC函數(shù)和SQL語句操作各種不一樣數(shù)據(jù)庫。15JSP數(shù)據(jù)庫應(yīng)用開發(fā)第15頁JDBC數(shù)據(jù)訪問接口為支持Java程序數(shù)據(jù)庫操作功效,Java語言采取了專門Java數(shù)據(jù)庫編程接口(JDBC,JavaDataBaseConnectivity),用于在Java程序中實現(xiàn)數(shù)據(jù)庫操作功效并簡化操作過程。JDBC支持基本SQL語句,提供多樣化數(shù)據(jù)庫連接方式,為各種不一樣數(shù)據(jù)庫提供統(tǒng)一操作界面JDBC可做三件事:1、與數(shù)據(jù)庫建立連接2、發(fā)送SQL語句3、處理結(jié)果

16JSP數(shù)據(jù)庫應(yīng)用開發(fā)第16頁JDBC四種驅(qū)動程序類型JDBC-ODBC橋接驅(qū)動程序:JDBC-ODBC橋驅(qū)動程序提供將JDBC數(shù)據(jù)轉(zhuǎn)換為ODBC數(shù)據(jù)起源,再利用ODBC與數(shù)據(jù)庫傳輸數(shù)據(jù)。在服務(wù)器上必須能夠安裝ODBC驅(qū)動程序。性能不好應(yīng)用程序JDBC-ODBC橋接器ODBC

Driver數(shù)據(jù)庫SQL語句結(jié)果集17JSP數(shù)據(jù)庫應(yīng)用開發(fā)第17頁原生API驅(qū)動:這種類型驅(qū)動程序把客戶機API上JDBC調(diào)用轉(zhuǎn)換為Oracle、Sybase、Informix、DB2或其它DBMS所指定原生碼。應(yīng)用程序JDBC驅(qū)動程序原生驅(qū)動程序數(shù)據(jù)庫SQL語句結(jié)果集18JSP數(shù)據(jù)庫應(yīng)用開發(fā)第18頁JDBC經(jīng)過網(wǎng)絡(luò)純Java驅(qū)動程序:這種驅(qū)動程序?qū)DBC轉(zhuǎn)換為與DBMS無關(guān)網(wǎng)絡(luò)協(xié)議,之后這種協(xié)議又被某個服務(wù)器轉(zhuǎn)換為一個DBMS協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺僇ava客戶機連接到各種不一樣數(shù)據(jù)庫上。應(yīng)用程序JDBC驅(qū)動程序中間件數(shù)據(jù)庫SQL語句結(jié)果集19JSP數(shù)據(jù)庫應(yīng)用開發(fā)第19頁當(dāng)?shù)貐f(xié)議純Java驅(qū)動程序:這種類型驅(qū)動程序由純Java所寫成,而且直接與數(shù)據(jù)庫連接。性能最好

應(yīng)用程序JDBC驅(qū)動程序數(shù)據(jù)庫SQL語句結(jié)果集20JSP數(shù)據(jù)庫應(yīng)用開發(fā)第20頁使用JDBC訪問數(shù)據(jù)庫第一步下載并安裝JDBC驅(qū)動程序。MySQL數(shù)據(jù)庫JDBC驅(qū)動下載驅(qū)動程序mysql-connector-java-5.1.7-bin.jar將mysql-connector-java-5.1.7-bin.jar拷貝到WebRoot/WEB-INF/lib目錄下SQLServer數(shù)據(jù)JDBC驅(qū)動下載地址:/downloads/details.aspx?familyid=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en安裝JDBC驅(qū)動程序,是個exe文件將%JDBC驅(qū)動程序安裝目錄%/lib/mssqlserver.jar,msbase.jar,msutil.jar拷貝到WebRoot/WEB-INF/lib目錄下Derby數(shù)據(jù)JDBC驅(qū)動將驅(qū)動derbyclient.jar拷貝到WebRoot/WEB-INF/lib目錄下21JSP數(shù)據(jù)庫應(yīng)用開發(fā)第21頁創(chuàng)建一個基本JDBC應(yīng)用步驟一:注冊一個driver;步驟二:建立一個到數(shù)據(jù)庫連接;步驟三:創(chuàng)建一個statement;步驟四:執(zhí)行SQL語句;步驟五:處理結(jié)果;步驟六:關(guān)閉JDBC對象importjava.sql.*;classFirstJDBCApp{ publicstaticvoidmain(String[]args) { Connectionconn=null; Statementstmt=null; ResultSetrst=null; try{

Class.forName("com.mysql.Driver");

Stringurl="jdbc:mysql://localhost:3306/JSPCourse";

Stringuser=“root"; Stringpassword="123456";

conn=DriverManager.getConnection(url,user,password);

System.out.println("成功連接上數(shù)據(jù)庫!");

stmt=conn.createStatement();

rst=stmt.executeQuery("Select*fromstudents");

while(rst.next()){ System.out.println(rst.getString("Name")); } } catch(Exceptione){ System.out.println("登錄失?。?); e.printStackTrace(); }

conn.close(); }}1、加載并注冊驅(qū)動器2、建立連接3、創(chuàng)建Statement4、執(zhí)行SQL語句5、處理結(jié)果6、關(guān)閉連接22JSP數(shù)據(jù)庫應(yīng)用開發(fā)第22頁1、Class類經(jīng)過調(diào)用forName方法加載Driver類一個實例并注冊到DriverManager類2、DriverManager類調(diào)用getConnection方法獲取一個與數(shù)據(jù)庫連接Connection3、用Connection對象創(chuàng)建Statement,依據(jù)不一樣需求,創(chuàng)建不一樣Statement4、用Statement對象執(zhí)行SQL語句,得到結(jié)果集ResultSet23JSP數(shù)據(jù)庫應(yīng)用開發(fā)第23頁JDBCAPI

24JSP數(shù)據(jù)庫應(yīng)用開發(fā)第24頁Driver接口加載驅(qū)動程序,不一樣數(shù)據(jù)庫系統(tǒng)有不一樣加載代碼:MySQL數(shù)據(jù)庫:Class.forName(“com.mysql.jdbc.Driver");Class.forName("org.gjt.mm.mysql.Driver");MSSQLServerClass.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")OracleClass.forName(“oracle.jdbc.driver.OracleDriver”);DB2Class.forName(“com.ibm.db2.jdbc.app.DB2Driver”);Access(使用ODBC)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");DerbyClass.forName("org.apache.derby.jdbc.ClientDriver")25JSP數(shù)據(jù)庫應(yīng)用開發(fā)第25頁Driver接口加載驅(qū)動程序后,驅(qū)動程序會建立一個Driver對象,并用registerDriver(Driverdriver)方法向DriverManager來注冊此對象犯錯情況:Classnotfound無法找到JDBC驅(qū)動程序類,犯錯在沒有將JDBC驅(qū)動包加入lib包中或加入環(huán)境變量classpath中Drivernotfound沒有用DriverManager類注冊JDBC驅(qū)動,處理方法:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();26JSP數(shù)據(jù)庫應(yīng)用開發(fā)第26頁DriverManager類DriverManager類是JDBC管理層,作用于用戶與驅(qū)動程序之間。建立與數(shù)據(jù)庫之間連接,也就是創(chuàng)建一個Connection實例。DriverManager類getConnection()方法將建立數(shù)據(jù)庫連接:publicstaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)throwsSQLException一樣,不一樣數(shù)據(jù)庫系統(tǒng),其URL也是不一樣:在程序最終,應(yīng)該關(guān)閉Connection對象:publicvoidclose()throwsSQLExceptionMySQLurl="jdbc:mysql://localhost:3306/dbName";MSSQLServerurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbName";Oracleurl="jdbc:oracle:thin:@localhost:1521:dbName";DB2url="jdbc:db2://localhost:5000/dbName";27JSP數(shù)據(jù)庫應(yīng)用開發(fā)第27頁Connection接口Connection對象代表與數(shù)據(jù)庫連接,Connection接口也是最頻繁使用接口之一。慣用方法:close()StatementcreateStatement()StatementcreateStatement(intresultSetType,intresultSetConcurrency)PreparedStatementprepareStatement(Stringsql)CallableStatementprepareCall(Stringsql)……28JSP數(shù)據(jù)庫應(yīng)用開發(fā)第28頁Statement接口Statement接口對象用于將SQL語句發(fā)送到數(shù)據(jù)庫中,并訪問結(jié)果。通慣用于執(zhí)行單次操作。Statement接口提供了三種執(zhí)行SQL語句慣用方法:publicResultSetexecuteQuery(Stringsql)throwsSQLException用于產(chǎn)生單個ResultSet語句,比如SELECT語句。publicintexecuteUpdate(Stringsql)throwsSQLException用于執(zhí)行INSERT、UPDATE或DELETE語句以及SQLDDL語句,比如CREATETABLE和DROPTABLE。該方法返回一個整數(shù),指示受影響行數(shù)。booleanexecute(String

sql)不知道是查詢還是更新情況下,用此方法,返回是否有結(jié)果集29JSP數(shù)據(jù)庫應(yīng)用開發(fā)第29頁PreparedStatement接口預(yù)編語句(PreparedStatement)接口從Statement繼承而來與Statement相比:用于屢次執(zhí)行SQL操作,每次只是數(shù)據(jù)不一樣包含是已編譯好SQL語句SQL語句中有一個或多個參數(shù),用?替換,而且要用setXXX方法來設(shè)定?代表值。PreparedStatementstmt=conn.prepareStatement(“INSERTINTOmyTablevalue(?,?,?)”);stmt.setString(1,”Jack”);stmt.setString(2,”1234”);stmt.setInt(3,30);30JSP數(shù)據(jù)庫應(yīng)用開發(fā)第30頁CallableStatement接口存放過程:在執(zhí)行應(yīng)用程序之前,存放過程就已經(jīng)內(nèi)建在數(shù)據(jù)庫中,在執(zhí)行應(yīng)用程序時,直接以名稱存取存放過程。優(yōu)點:執(zhí)行速度更加快若語法有錯,能夠在編譯時期就處理,而不是執(zhí)行期開發(fā)人員只需要知道存放過程名稱、輸入和輸出就能順利執(zhí)行31JSP數(shù)據(jù)庫應(yīng)用開發(fā)第31頁ResultSet接口ResultSet對象包含符合SQL語句執(zhí)行結(jié)果全部行,而且它經(jīng)過一套get方法提供了對這些行中數(shù)據(jù)訪問,慣用get方法有:intgetInt(intcolumnIndex),取得當(dāng)前行中第columnIndex列整數(shù)值。intgetInt(StringcolumnName),取得當(dāng)前行中列名為columnName整數(shù)值。DategetDate(intcolumnIndex),取得當(dāng)前行中第columnIndex列日期值。DategetDate(StringcolumnName),取得當(dāng)前行中列名為columnName日期值。publicStringgetString(intcolumnIndex),取得當(dāng)前行中第columnIndex列字符串值。publicStringgetString(StringcolumnName),取得當(dāng)前行中列名為columnName字符串值。其它類型get方法能夠參考java文檔。ResultSet維護指向其當(dāng)前數(shù)據(jù)行光標(biāo),讓光標(biāo)向下移動一行方法是:publicbooleannext()throwsSQLException32JSP數(shù)據(jù)庫應(yīng)用開發(fā)第32頁結(jié)果集并發(fā)性結(jié)果集并發(fā)性(Concurrency)決定ResultSet對象是否能夠修改數(shù)據(jù)庫中行。能夠使用ResultSet類中定義int常量來指定結(jié)果集并發(fā)性。ResultSet.CONCUR_READ_ONLY,指定ResultSet對象不能修改數(shù)據(jù)庫,默認(rèn)值。ResultSet.CONCUR_UPDATABLE,指定ResultSet對象能夠修改數(shù)據(jù)庫。33JSP數(shù)據(jù)庫應(yīng)用開發(fā)第33頁MSSQL.html<html><head><title>CH14-Mysql.html</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"></head><body>

<h2>JDBC應(yīng)用</h2><formname="form"action="MSSQL.jsp"method="post"><p>用戶名:<inputname="last_name"type="text"id="last_name"></p><p>密碼:<inputname="first_name"type="text"id="first_name"></p><p><inputtype="submit"value="提交"><inputtype="reset"value="重寫"></p></form></body></html>MSSQL.JSP<%@pageimport="java.sql.*"%><%@pagecontentType="text/html;charset=gb2312"%><html><head><title>CH14-MSsql.jsp</title></head><body><h2>將信息存入SQLServer</h2><% Connectioncon=null; Statementstmt=null; Statementstmt1=null; ResultSetrs=null; request.setCharacterEncoding("GB2312"); Stringemployee_id=null; Stringlast_name=request.getParameter("last_name"); Stringfirst_name=request.getParameter("first_name"); Stringbirth="1978/12/11"; Stringsex="F"; Stringemail="aaa@"; Stringnew_last_name=""; Stringnew_first_name=""; try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JSPCourse";

Stringuser="sa"; Stringpassword="123456"; conn=DriverManager.getConnection(url,user,password); stmt=con.createStatement(); Stringupd="INSERTINTOemployee(employee_id,last_name,first_name,birth,sex,email)VALUES("+employee_id+",'"+last_name+"','"+first_name+"','"+birth+"','"+sex+"','"+email+"')"; stmt.executeUpdate(upd); stmt1=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Stringquery="SELECT*FROMemployee"; rs=stmt1.executeQuery(query); rs.last(); new_last_name=rs.getString("last_name"); new_first_name=rs.getString("first_name"); stmt.close(); stmt1.close(); con.close(); } catch(SQLExceptionsqle) { out.println("sqle="+sqle); } finally { try{ if(con!=null) { con.close(); } } catch(SQLExceptionsqle) { out.println("sqle="+sqle); } }%></body></html>34JSP數(shù)據(jù)庫應(yīng)用開發(fā)第34頁<%@pagecontentType="text/html;charset=BIG5"import="java.sql.*"%><HTML><HEAD><METAHTTP-EQUIV="Content-Type"CONTENT="text/html;charset=gb2312"></HEAD><BODY><%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JSPCourse";Stringuser="sa";Stringpassword="123456";Connectionconn=DriverManager.getConnection(url,user,password);//使用PrepareStatementStringchangeUpdate="UPDATEBooks_InfoSETprice=?,publisher=?Wherebook_id=?;";PreparedStatementpstmt=con.prepareStatement(changeUpdate);//指定更新pstmt.setInt(1,700);pstmt.setString(2,"電子出版社");pstmt.setString(3,"5");

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論