使用JSP访问数据库学习教材.ppt_第1页
使用JSP访问数据库学习教材.ppt_第2页
使用JSP访问数据库学习教材.ppt_第3页
使用JSP访问数据库学习教材.ppt_第4页
使用JSP访问数据库学习教材.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6讲使用JSP访问数据库,学习目标,掌握SQL语句掌握Access数据库的基本操作了解JDBC、ODBC与数据源掌握如何通过JSP页面访问数据库,本章主要内容,结构化查询语言SQL使用Access数据库ODBC与JDBC在服务器端通过JSP访问数据库在客户端通过页面访问数据库思考与练习,1结构化查询语言SQL,什么是SQLSQL是“StructuredQueryLanguage”结构化查询语言的缩写,SQL是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具;SQL是针对一种特定类型的数据库关系数据库使用的。控制关系数据库的计算机程序称为DBMS-数据库管理系统。SQL是目前使用最广的、标准的数据库语言。SQL语言使得在数据库中存取或更新信息变得十分容易。,1.1select查询语句,1.使用select语句查询数据查询是SQL语言的核心,而用于表达SQL查询的select语句则是功能最强也是最为复杂的SQL语句,它从数据库中检索数据,并将查询结果提供给用户下面通过具体例子说明select语句的使用方式。首先建立一个名为DB的简单数据库,该库中存放一个叫S的用户情况表,如下表所示,在表中有六列即六个字段:姓名(xm)、性别(xb)、工资(gz)、年龄(nl)、电话(dh)、居住地区(dz),下面看看如何用Select语句对S表中的内容进行查询。,如果要列出S表中所有姓名、性别和工资的内容,可用下面的select语句select姓名,性别,工资froms实现,如果要列出s表中所有男性的姓名、性别和工资的内容,可用下面的select语句实现select姓名,性别,工资fromswhere性别=男“如果要列出S表中年龄大于和等于24的所有女性的姓名、工资、电话和居住地区,并且按工资排序,可用下面的Select语句:select姓名,工资,电话formswhere年龄=24and性别=女orderby工资,知识归纳,Select语句的语法格式为:select数据项1,数据项2,from表名where条件表达式orderby排序选项Select语句用来从数据库表中检索出满足条件表达式要求的数据项。select子句的构成select子句列出所有要求select语句检索的数据表中的内容。它放在select语句开始处,指定此查询要检索的数据表中的内容。这些内容通常用数据项表示,即一组用“,”隔开的多个数据项。按照从左到右的顺序,每个数据项产生一列查询结果,,知识归纳,from子句from子句列出包含所要查询数据的表,它由关键字from后跟一组用逗号分开的表名组成。每个表名都代表一个包括该查询要检索数据的表。这些表称为此SQL语句的表源,因为查询结果都源于它们。Where子句Where子句告诉SQL只查询某些行中的数据,这些行用Where说明的搜索条件进行描述。orderby子句orderby子句将查询结果按一列或多列中的数据排序。如果省略此子句,则查询结果将是无序的。添加ASC属性以升序(从小到大)排列,DESC属性以降序(从大到小)排列。groupby子句groupby子句指定汇总查询,即不是对每行产生一个查询结果,而是将相似的行进行分组,再对每组产生一个汇总结果。having子句having子句告诉SQL只产生有groupby得到的某些组的结果,和where子句一样,所需要的组也用一个搜索条件来指定。,1.2运算符与函数,1.关系运算符一般通过关系运算符连接一个值来表示查询条件。=等于例如字段名=“男”不等于大于=大于等于例如字段名=20,1.2运算符与函数,2特殊运算符In(字段值列表)按列表中的值查找,例如字段名In(“李明”,“王平”,“张海”),表示查询该字段中包含“李明”,“王平”,“张海”在内的记录。Between初值and尾值,例如字段名Between1and100,表示查询该字段中1到100之间的所有数值。Like“文本字段的字符”,例如文本字段名like“计算机*”,表示查询该文本字段中包含“计算机”在内的所有记录。其中,?匹配一个字符*匹配零或多个字符,用方括号可描述一个可匹配的字符范围。,1.2运算符与函数,3逻辑运算符not例如姓名not”李元”,表示查询“姓名”字段中除了“李元”的记录。and例如年龄=24and性别=女。or例如年龄=30or姓名=”李元”。,4函数函数有很多,这里仅给出几个日期函数和合计函数的说明。(1)日期函数DAY(date)给出日期数据中的哪一天的值,例如DAY(#92-01-01#)为1。month(date)给出日期数据中的哪一月的值。year(date)给出日期数据中的哪一年的值。Weekday(date)给出日期数据中星期几的值。houe(date)给出日期数据中钟点的值date(date)给出当前日期,1.2运算符与函数,1.2运算符与函数,(2)合计函数,例如,selectcount(ID)fromstudent;用来统计student表中按ID汇总出的学生人数。,1.3InsertInto添加语句,SQL不仅能进行数据库的查询,还可以添加新数据到数据库中。添加语句的语法格式:InsertInto表名(col1,col2.)Values(value1,value2.)InsertInto添加语句用来向一个表中添加指定的新数据例将张驰作为一个新的成员加入表S中。InsertIntoS(xm,xb,nl,gz,dh,dz)values(张驰,男,28,4500,8888,北京),Insert语句还可以将多行数据添加到另外一个目标表(B)中,在这种形式的Insert语句中,添加的数据值由查询语句指定。添加的值来自已经存在的表(A)中。看下面的例子。例如果要把2008年12月30日之前产生的订单编号(Num)、日期(Date)和数目(Amount)从A表拷贝到另一个名为B的表中去,可用下面的语句:InsertintoB(Num,Date,Amount)SelectNum,Date,AmountFromAWhereDate);out.println(rs.getString(1);out.println();out.println();out.print(rs.getString(2);out.println();%,4.2通过JSP文件在数据库中添加与删除,(1)PreparedStatement对象Statement的子接口PreparedStatement对象,使用的SQL语句中可以包含用多个问号“?”代表的字段,这样的SQL语句称为预编译的SQL语句,例如Stringsqlinsertintoadminsvalues(?,?);通过PreparedStatement对象的setXXXX()方法可以分别给“?”代表的字段赋值,例如ps.setString(1,文本数据);添加文本类型数据,使用ps.setInt(2,12)添加整数型数据,按SQL语句中“?”字段出现的顺序为记录中的字段添加数据,从1开始。通过PreparedStatement对象的executeUpdate()方法完成添加数据的任务。,例6.12在数据库添加与删除数据的程序(P155)。显示添加与删除后的数据,效果图,5在客户端通过页面访问数据库,5.1创建两个重复使用的共用文件为了使JSP代码简单清晰,可将连接数据库的任务单独编写为一个共用的JSP文件,将数据库查询结果按表格输出的任务编写为一个共用的JSP文件。当其它程序需要使用数据库连接或用表格输出数据库查询的结果时,只要稍加修改或直接将共用的JSP文件包含在jsp文件中即可。这样可以使代码重复使用,还可以增加程序的可维护性。,1.创建完成连接数据库任务的JSP文件,例6.13连接数据源jsp的JSP文件(jdbc-jsp.jspP157)。jdbc-jsp.jsp源代码如下:,2.创建完成用表格输出数据库查询任务的JSP文件,例6.14按表格输出数据库查询结果的JSP文件(table.jspP157)。table.jsp源代码如下:);while(rs.next()out.println();out.println(rs.getString(1);out.println();out.println();out.print(rs.getString(2);out.println();rs.close();s.close();c.close();%,5.2在客户端向数据库添加数据,1.创建用户输入数据页面例6.15创建一个在客户端浏览器中用户输入数据的HTML页面(6-16.htmP157)。向数据库添加数据用户名口令,2.创建数据处理与显示数据结果的页面,例6.16向数据库添加数据并显示添加结果的JSP页面(6-16.jspP158)。在客户端添加数据到数据库,5.3在客户端输入查询条件并显示查询结果,例6.17按用户名查询用户口令的JSP文件(6-17.jspP159)。用户名按用户名查询的结果,效果图,5.4一个简单的会员表维护系统,下面将通过几个JSP程序文件,构成一个Web应用系统,通过客户端对存放在服务器上questionnaire数据库中的会员表admins进行显示、更改、添加或删除的操作。会员表维护系统组成会员表维护系统包含如下文件:保存存放数据的会员表admins的数据库文件questionnaire、连接数据库的JSP文件jdbc-jsp.jsp、会员表维护主界面的JSP文件index.jsp、组成主界面“添加记录”部分的HTML文件adduser.htm、添加记录到数据库的JSP文件adduser.jsp等9个文件。会员表维护主界面例6.18会员表维护系统的所有功能都体现在其主界面(index.jsp)上,在该页面可以进行添加、更改、删除的操作,其具体功能的实现交由其他JSP文件处理,index.jsp的界面如图所示。,完整代码参见P160下面是部分页面代码片段,Index.jsp中读取数据库记录的jsp程序(P160),);out.print(+adminname+);out.print(更改密码);if(!adminname.equals(admin)out.print(删除会员);elseout.print(超级用户不能删除);out.print();%,adduser.jsp向数据库添加记录部分程序(P161),在主界面中添加的会员记录数据将提交给adduser.jsp处理,其代码如下);Stringid=null;while(rs.next()id=rs.getString(1);./省略了验证数据是否为空程序Stringsql1=insertintoadmins(admname,admpwd)values(+name+,+password+);s.executeUpdate(sql1);response.sendRedirect(index.jsp);%,删除会员”操作的JSP文件deltuser.jsp(P162),);%,“更改密码”的JSP文件edituser.jsp(P163),更改会员密码会员名称会员密码确认密码,将更改数据添加数据库的JSP文件moduser.jsp(P163),错误信息+errmsg+);elseif(!password.equals(confirm)Stringerrmsg=请重新确认密码!;out.print(错误信息+errmsg+);elseStringsql=updateadminssetadmpwd=+password+;s.executeUpdate(sql);response.sendRedirect(index.jsp);out.print();%,5.5连接Access数据库的不同方式,1连接带有用户名与密码的数据库为了数据库的安全,可在Access数据库中设置用户名与密码,例如设置用户名为“lpshao”、密码为“123456”,数据源为jsp,然后可使用下面的程序与数据源进行连接。例6.18与access数据库连接的程序(jdbc-access1.jspP164)。,2直接连接数据库的方式没有设置数据源,可以采用直接与数据库建立连接的方式,看下面的程序。例6.19与access数据库直接连接的程序(jdbc-access2.jspP164),6思考与练习,思考什么是SQL?SQL与JSP存在什么关系?JSP如何访问不同数据库中的数据?,上机练习,安装Access数据库。在Access数据库中建立一个库存管理数据库文件kcgl.mdb,并创建订单表DD(ddh(订单号),hh(货号),pm(品名),dw(定货单位),sj(售价),dgl(定购量),dd(送货地点),rq(送货日期,zt(订单处理状态);库存表KC(货号,品名,库存量,仓库地点,单价)。根据上面创建的数据库kcgl。编写SQL语句查询下列问题:查询所有订单。10内要送货的货物的名称和送货地点、送货时间。北京光明公司所定货物的名称和送货地点。售价最高的货物。定购量超过2000件的单位。在计算机中使用Window操作系统的ODBC创建一个连接数据库文件kcgl.mdb的名称为kcglDB的数据源。编写一个连接库存管理数据库kcgl的jdbc-kcgl.jsp文件。,使用JSP技术编写一个订货单处理系统,包括以下功能:输入订单功能页面,通过一个静态表单页面输入订货信息,然后通过一个JSP程序将输入订货信息存放到数据库kcg

温馨提示

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

评论

0/150

提交评论