JSPWeb数据库应用开发.ppt

上传人:za****8 文档编号:13322034 上传时间:2020-06-15 格式:PPT 页数:74 大小:1.41MB
收藏 版权申诉 举报 下载
JSPWeb数据库应用开发.ppt_第1页
第1页 / 共74页
JSPWeb数据库应用开发.ppt_第2页
第2页 / 共74页
JSPWeb数据库应用开发.ppt_第3页
第3页 / 共74页
资源描述:

《JSPWeb数据库应用开发.ppt》由会员分享,可在线阅读,更多相关《JSPWeb数据库应用开发.ppt(74页珍藏版)》请在装配图网上搜索。

1、1,第九章基于JSP的Web数据库应用开发,第三篇JSPWeb数据库应用开发,2,JSP,9.1Web数据库应用基础9.1.1数据库基本概念1.基本术语(1)数据库系统数据库系统是一个存储数据的计算机系统。(2)数据库数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库概念包含两层意思:数据库保管数据的“仓库”。“数据”和“库”两个概念结合成为“数据库”。数据库是数据管理的方法和技术,它能够合理地组织数据、方便地维护数据、严密地控制数据和有效地利用数据。数据库是一个合理组织了的数据仓库。,3,JSP,(3)数据库管理系统(DBMS)数据库管理系统是管理数据库的软件系统,它提供了一组建

2、立数据库和管理数据库的工具。用户可以使用这些工具进行各种数据库操作,如数据库生成、数据表格生成、数据的输入和修改、数据的检索和使用、数据安全、数据相关关系的设定和数据访问权限的设定等。目前市场上比较著名的数据库管理系统有Oracle、Sybase、Informix、SQLServer等。2.数据库设计与管理信息系统管理信息系统简称为MIS(ManagementInformationSystem),管理信息系统帮助人们完成需要手工处理的信息处理工作,不仅能够提高工作效率,降低劳动强度,而且能够提升管理信息的质量和水平。管理信息系统的数据存放在数据库中。,4,数据库,用户,息,信,管,理,系,统,

3、功,能,模,块,数,据,库,管,理,系,统,用户,用户,管理信息系统、数据库管理系统和数据库的关系,5,3.数据库、表、记录和字段数据库:数据库中的数据表示为多个表的集合,通过建立表与表之间的关系来定义数据库的结构。表:按某一公共结构存储的一组相似数据,它是数据库的基础构件。记录:表中数据以行、列方式将相关信息排列成逻辑组,表中每一行称为一个记录字段:表中每一列称为字段例如,网上书店数据库名为bookshop,库中有7个表:book、userinfo、orderform、orderdetail、notes、employee和publisher。,6,JSP,9.1.2创建数据库和表1.创建数据

4、库(1)启动SQLServer服务管理器(2)创建数据库2.创建新表:booktable,7,JSP,9.1.3SQL语句1.选择语句(SelectStatement)从现有的数据库中检索数据,将满足一定约束条件的一个或多个表中的字段从数据库中挑选出来,并按一定的分组和排序方法显示。简单的选择语句只有FROM子句,用来指定数据的来源,也就是记录来自那些表。WHERE子句指定选择记录时要满足的条件,如果没有WHERE子句,则返回表中的所有记录。SELECT字段1,字段2,FROM表名WHERE条件表达式(1)在booktable表中检索所有书名SELECTbooknameFROMbooktabl

5、e功能:从booktable表的bookname字段检索数据。SELECT:关键字,说明要做查询操作;bookname:字段名,数据从该字段中检索;FROM:关键字,指明信息来源,后面列出表的名称。booktable:表的名称,数据从该表中检索。结果集是booktable表中的全部书名。,8,JSP,(2)在booktable表中查询书号等于ISBN7-04-012301-0的书名,SELECTbooknameFROMbooktableWHEREbookid=ISBNISBN7-04-012301-0结果集是:C+程序设计。(3)范围查询,在booktable表中查询2002年上半年出版的书名

6、,SELECTbooknameFROMbooktableWHEREpubdateBetween2002-1-1and2002-6-30(4)ORDERBY子句,使结果集按序排列。图书按出版日期排序:SELECT*FROMbooktableORDERBYbookid缺省值是升序,按降序排列,加关键字DESC:SELECT*FROMbooktableORDERBYbookidDESC(5)模糊查询,在WHERE子句中应用LIKE运算符,可以只选择与用户规定格式相同的记录。用通配符“%”可以代替任何字符串。例如,在userinfo表中查询所有姓王的读者,可用以下语句:SELECT*FROMuseri

7、nfoWHEREusernameLIKE王%,9,JSP,2.插入语句(InsertStatement)一个或多个记录添加到指定表中。INSERTINTO表名(字段1,字段2,n)VALUES(值1,值2,n)例如,在booktable表中插入新书记录(书号:ISBN7-04-012301-0,书名:C+程序设计,作者:吴乃陵,出版社编号:3,出版日期:2003-8-1,定价:29.5):INSERTINTObooktable(bookid,bookname,author,publisher,pubdate,price,type,quantity)VALUES(ISBN7-04-012301-

8、0,C+程序设计,吴乃陵,高等教育出版社,2003-8-1,29.5,计算机,100),10,JSP,3.更新语句(UpdateStatements)更新表中的字段。UPDATE表名SET列名=表达式,列名=表达式,WHERE条件表达式例如,在booktable表中把所有图书的在库册数减2,语句如下:UPDATEbooktableSETquantity=quantity-2,11,JSP,4.删除语句(DeleteStatement)删除由FROM子句列出的、满足WHERE子句条件的一个或多个表中的记录。DELETEFROM表名WHERE条件表达式例如,在booktable表中删除刚才插入的书

9、号为ISBN7-04-012301-0的记录,语句如下:DELETEFROMbooktableWHEREbookid=ISBN7-04-012301-0又如:下条SQL语句的功能将删除表中所有的记录,使用时要特别当心:DELETEFROMbooktable,12,JSP,9.2JDBC接口技术9.2.1JDBC概述1.什么是JDBCJDBC(JavaDatabaseConnectivity)接口技术实际上是一种通过Java语言访问任何结构化数据库的应用程序接口(API)。许多数据库系统带有JDBC驱动程序,Java程序通过JDBC驱动程序与数据库连接,执行查询、插入、更改和删除等操作。为能够访

10、问带有ODBC驱动程序的数据库,Sun公司开发了JDBCODBCBridge,应用这项技术,Java程序就能够访问带有ODBC驱动程序的数据库。由于大多数数据库系统都带有ODBC驱动程序,所以使用JDBCODBCBridge技术Java程序可以访问大多数数据库,如:MSSQLServer、Oracle、Sybase、Informix和MSAccess等数据库。,2.JDBC的功能(1)与一个数据库建立连接(connection);(2)向数据库发送SQL语句(statement);(3)处理数据库返回的结果(resultset)。,13,JSP,3.JDBC访问数据库的四种方式(1)JDBC-

11、ODBCBridge驱动程序JDBC-ODBC桥利用ODBC驱动程序提供JDBC访问。利用微软ODBC的开放性,只要本地机装有ODBC驱动,采用JDBC-ODBC桥驱动几乎可以访问所有的数据库。(2)本地API驱动本地API驱动直接把JDBC调用转变成数据库标准调用,然后再去访问数据库。这种方法也需要本地数据库驱动程序。(3)网络协议驱动使用一段纯Java代码,把JDBC调用转换成目标数据库网络协议调用。(4)本地协议驱动使用一段纯Java代码,把JDBC调用转换成数据库本地协议调用。,14,JSP,9.2.2JDBC-ODBC桥先建立数据源,数据源对应一个数据库。为了连接到数据库,需要建立一

12、个JDBC-ODBC桥接器,也就是加载JDBC-ODBC桥驱动程序。以网上书店的bookshop数据库为例。建立数据源(DSN:DataSourceName)一个数据源就是对数据库的一个命名连接。数据源有三种:用户数据源、系统数据源和文件数据源。用户数据源只有用户可以看见,只能用于当前机器中。系统数据源允许所有用户登录特定服务器去访问数据库,任何具有权限的用户都可以访问系统数据源。文件数据源把信息存储在后缀为.dsn的文本文件中,如果把该文件放在网络共享目录中,则可被网络中任何一台工作站访问到。Web应用程序访问数据库时,通常是建立系统数据源。,15,JSP,9.2.3JDBC建立数据库连接示

13、例用JDBC-ODBCBridge驱动程序建立与数据库的连接。例9.1(P232):使用JSP技术查询booktable表中书号是ISBN7-04-012301-0的图书。本例使用前面生成的bookshoplk数据源,通过JDBC-ODBC桥访问数据库。,JDBC-ODBCBridge,16,/所有与数据库有关的对象和方法都在java.sql包中JDBC建立数据库连接数据查询/加载驱动程序,17,bookidbooknameauthorpublisherpubdatepricetypequantity/将名称为bookid的列的内容作为字符型返回/只返回年月日,18,JSP,19,JSP,9.

14、2.4JDBC建立数据库连接方法详解1.JDBC建立数据库连接步骤(1)加入命令行:(2)加载驱动程序:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);(3)建立连接:Connectionconn=DriverManager.getConnection(jdbc:odbc:bookshoplk,sa,);(4)发送SQL语句:Statementstmt=conn.createStatement();(5)建立ResultSet(结果集)对象:ResultSetrs;(6)执行SQL语句:rs=stmt.executeQuery(SELECT*FROMbo

15、oktablewherebookid=ISBN7-04-012301-0);/executeQuery:用于产生单个结果集的语句(7)关闭对象:rs.close();/关闭ResultSet对象stmt.close();/关闭Statement对象conn.close();/关闭Connection对象,20,JSP,2.JDBC数据库连接步骤详解(1)加入命令行(P234)所有与数据库有关的对象和方法都在java.sql包中,所以在使用JDBC的程序中必须加入命令行:(2)加载驱动程序(P234)应用JDBC-ODBCBridge方式连接数据库,必须先加载JDBC-ODBCBridge驱动程

16、序,语句如下:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Class是包java.lang中的一个类,该类通过调用静态方法forName建立JDBC-ODBC桥接器,即加载驱动程序。由于加载驱动程序时可能产生异常,所以需要异常处理程序段。trycatch(Exceptione),21,JSP,(3)建立连接(P235)要连接一个数据库,必须创建Connection类的一个实例:Connectionconn=DriverManager.getConnection(jdbc:odbc:数据源名,Loginname,Password);调用DriverMa

17、nager.getConnection方法建立与数据库的连接,该方法指定了数据库的位置、用户名和用户口令。DriverManager类位于JDBC的管理层,作用在用户和驱动程序之间。数据源名是在“控制面板管理工具数据源(ODBC)”中设置的数据源名。Loginname是用户名,Password是用户口令。如果没有为数据源设置用户名和用户口令,连接形式如下:Connectionconn=DriverManager.getConnection(jdbc:odbc:数据源名,);一旦DriverManager.getConnection方法找到了建立连接的驱动程序和数据源,则通过用户名和口令开始与D

18、BMS建立连接,如果连接通过,连接建立完成。,22,JSP,(4)发送SQL语句(P235)Statement类的对象由Connection的createStatement方法创建,用于发送不带参数的简单SQL语句,对数据库进行具体操作,如查询、修改等。在执行一个SOL查询语句前,必须用createStatement方法建立一个Statement类的对象。例如:Connectionconn=DriverManager.getConnection(jdbc:odbc:bookshoplk,sa,);Statementstmt=conn.createStatement();,23,JSP,(5)创

19、建结果集对象(P236)一旦连接到数据库,就可以查询数据表名、列名和有关的信息,并且可以运行SQL语句对数据库的数据进行查询、添加、更新和删除等操作。JDBC提供了ResultSet、DatabaseMetaData和ResultSetMetaData类获取数据库中的信息。ResultSet类存放查询结果,并通过一套方法提供对数据的访问。它是JDBC中很重要的对象。ResultSet包含任意数量的命名列,可以按名字访问这些列;它也包含一或多个行,可以按顺序自上而下地逐一访问。例如:Statementstmt=con.createStatement();ResultSetrs;rs=stmt.e

20、xecuteQuery(SELECT*FROMbooktablewherebookid=ISBN7-04-012301-0);,24,JSP,当建立一个ResultSet类对象时,它指向第一行之前的位置。ResultSet对象常用方法如下:getInt(int):将序号为int的列的内容作为整数返回;getInt(String):将名称为String的列的内容作为整数返回;getFloat(int):将序号为int的列的内容作为一个float型数返回;getFloat(String):将名称为String的列的内容作为float型数返回;getData(int):将序号为int的列的内容作为日

21、期返回;getData(String):将名称为String的列的内容作为日期返回;next():把行指针移到下一行,如果没有剩余行,则返回false;close():关闭结果集;getMetaData():返回ResultSetMetaData对象。,25,JSP,ResultSetMetaData类实例提供ResultSet中列的名称、数目和类型信息。例如:ResultSetMetaDatarsmd;rsmd=Results.getMetaData();NumCols=rsmd.getColumnCount();ResultSetMetaData对象常用方法如下:getColumnCoun

22、t():返回ResultSet中的列数;getColumnName(int):返回序号为int的列名;getColumnLabel(int):返回序号为int列暗含的标签;isCurrency(int):如果此列包含有货币单位的一个数字,则返回true;isReadOnly(int):如果此列是只读,则返回true;isAutoIncrement(int):如果此列自动递增,则返回true。,26,例9.2(P237):输出booktable表中各列的名称。代码创建了ResultSetMetaData对象rsmd,并使用getColumnCount()和getColumnName()方法取得b

23、ooktable表中的列数和列名。,输出booktable表各列的名称输出booktable表各列的名称,输出booktable表列名,27,JSP,记录集中共有列,各列的名称是:/getColumnCount():返回ResultSet中的列数,28,(6)执行SQL语句Statement对象提供了3种执行SQL语句的方法:executeQuery:用于产生单个结果集的语句,例如select语句。rs=stmt.executeQuery(SELECT*FROMbooktable);executeUpdate:用来执行insert、delete以及sqlddl(数据定义语句)。Execute:

24、用来返回多个结果集、多个更新计数或两者组合的语句。,29,JSP,9.3查询记录11.3.1顺序查询应用结果集Result的next()方法顺序输出一个表里的包含全部字段的所有记录。例9.3(P238):顺序输出数据表“booktable”中的所有记录和所有字段。分析:使用代码“Select*Frombooktable”从booktable数据表选择所有的记录,放置在rs结果集中,然后使用rs.next()方法将结果集中的数据顺序显示出来。,顺序查询,30,顺序查询顺序输出数据表“booktable”中包含所有字段的所有记录bookidbooknameauthorpublisherpubdat

25、epricetypequantity,31,32,JSP,9.3.2参数查询数据筛选是指按条件从数据库中选出符合条件的所有记录,由Where子句指定选择记录时要满足的条件。例9.4(P240):用户在界面输入查询条件,如出版社的名称,输入的名称提交给ex9-04.jsp处理,输出数据表“booktable”中需要查询的出版社出版的图书。其关键查询语句为:Select*Frombooktablewherepublisher=+publishername+,参数查询,33,JSP,ex9-04.html代码清单如下:参数查询应用案例图书查询请输入出版社名称:,34,ex9-04.jsp代码清单如下

26、:选择查询输出数据表booktable中的记录,35,bookidbooknameauthorpublisherpubdateprice%,54,bookidbooknameauthorpublisherpubdateprice,添加新记录,61,代码ex9-09.html清单添加记录应用案例向数据库添加新记录书号:书名:作者:出版社:出版日期:价格:类别:数量:,62,ex9-09.jsp代码清单添加记录新添加的记录,65,JSP,9.5更新记录1.应用SQL语句更新记录例9.10(P255):管理员在界面(ex9-10.html)输入需要更新数据的图书书号,并把更新的数据提交给ex9-10

27、.jsp处理。在ex9-10.jsp用SQL的Update语句更新记录,并输出更新后的记录。分析:其关键语句为updatebooktableSetquantity=+s_bkquantity+wherebookid=+s_bkid+;,更新记录,66,JSP,ex9-10.html代码清单:更新记录应用案例更新新记录输入需要更新数量的图书书号:输入新的数量:,67,JSP,ex9-10.jsp代码清单添加记录新添加的记录,68,JSP,69,JSP,9.6删除记录1.应用SQL语句删除记录例9.11(P58):管理员在界面(ex9-11.html)输入需要删除图书的书号,并把要删除的书号数据提交给ex9-11.jsp处理。在ex9-11.jsp中,用SQL的Delete语句将该记录删除,并输出删除后的booktable数据表。分析:其关键语句为DeleteFrombooktableWherebookid=+s_bkid+;,删除记录,70,JSP,代码ex9-11.html清单删除记录应用案例删除记录输入需要删除的图书书号:,71,代码ex9-11.jsp清单删除记录删除后的记录,72,bookidbooknameauthorpublisherpubdateprice typequantity,73,74,JSP,作业与实验,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!