JSP数据库操作详解
- 格式:ppt
- 大小:1.94 MB
- 文档页数:97
JSP的网络数据库连接技术及运用之研究JSP技术已经成为了Web应用程序中最广泛使用的技术之一。
而网络数据库连接则是JSP技术中使用最广泛的技术之一。
本文将会探讨JSP技术中网络数据库连接技术的相关内容,同时也会介绍其如何应用于实际项目中。
一、JSP技术概述JSP,即Java Server Pages,它是Sun Microsystems为了简化网站开发而开发的一套技术方案。
JSP技术通过将Java代码嵌入到HTML页面中来实现页面的动态性,同时通过Java Servlet技术来实现Web应用程序的逻辑控制。
JSP技术具有以下优点:1、易于维护:由于JSP技术将Java代码嵌入到HTML页面中,因此页面开发的工作变得更加容易,并且这种技术也使得页面的维护非常方便。
2、灵活性高:JSP技术可以支持Java的强大功能,不仅可以方便地进行页面的开发和维护,还可以很方便地对程序进行扩展。
3、高性能:与ASP、PHP等页面开发技术相比,JSP技术的性能非常高,这也是其在大型网站中得以广泛使用的原因之一。
二、网络数据库连接技术网络数据库连接技术是JSP技术中使用最为广泛的技术之一。
该技术通常使用Java数据库连接(JDBC)技术来实现。
JDBC是Java语言中用于与关系型数据库进行通信的标准API。
通过JDBC技术,JSP开发人员可以完成对数据库的增删改查等操作。
JDBC技术的核心是数据库驱动程序(driver),驱动程序是一个Java库,使得JDBC 可以与各种数据库进行交互。
驱动程序分为两种类型:JDBC-ODBC桥接器(Bridge)和纯Java驱动程序。
JDBC-ODBC桥接器在JDK 8中已被弃用,因此现在的Java应用程序中通常使用纯Java驱动程序。
常见的数据库驱动程序有以下几种:1、Oracle数据库驱动程序(OracleDriver)。
2、MySQL数据库驱动程序(com.mysql.jdbc.Driver)。
福建电脑2012年第12期基于JSP的数据库连接技术浅析张超(南京交通职业技术学院南京江宁211188)【摘要】:为解决JSP开发数据库系统时存在的数据库连接影响系统性能问题、提高数据库的访问效率,本文简单分析了JDBC直接访问数据库技术和数据库连接池技术的工作原理和操作步骤,提出数据库连接池技术的优势。
【关键词】:数据库JDBC连接池1.引言在进行JSP应用程序的开发过程中,不可避免的事情就是与数据库之间的交互,对数据库的连接和管理能显著影响到整个应用程序的伸缩性和健壮性。
目前比较常用的技术是JDBC技术和数据库连接池技术。
2.JDBC直接访问数据库技术JDBC技术是Java数据库连接技术的简称,由一组使用Java语言编写的类和接口组成,可以为多种关系数据库提供统一访问,Sun公司提供了JDBC的借口规范,数据库厂商会根据该接口规范提供针对不同数据库的具体实现---JDBC 驱动。
其工作原理如下图1所示:开发一个JDBC应用程序,基本需要以下步骤:(1)加载JDBC驱动。
使用Class.forName()方法将给定的JDBC驱动类加载到Java虚拟机中。
如果系统中不存在给定的类,则会引发异常,异常类型为ClassNot-FoundException。
关键代码如下:Class.forName(JDBC驱动类);(2)与数据库建立连接DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。
DriverManager类跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。
当调用getConnection()方法时,DriverManager类首先从已加载的驱动程序列表中找到一个可以接受该数据库URL的驱动程序,然后请求该驱动程序使用相关的URL、用户名和密码连接到数据库中,于是就建立了与数据库的连接,创建连接对象并返回引用。
关键代码如下:Connection con=DriverManager.getConnection (JDBC URL,数据库用户名,密码);(3)发送SQL语句,并得到返回结果。
jsp数据库操作之数据更新代码还是承接那个select.jspupdate.jsp<%--Created by IntelliJ IDEA.User: 长风Date: 2019/9/21Time: 20:03To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" import="java.sql.*" %><html><head><title>数据更新</title></head><body><%!public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";public static final String DBURL = "jdbc:mysql://localhost:3306/webstore?&useSSL=false&serverTimezone=UTC"; public static final String DBUSER = "root";public static final String DBPASS = "123456";%><%Connection conn = null;PreparedStatement pst = null;ResultSet rs = null;String id = null;%><%try {Class.forName(DBDRIVER);conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);request.setCharacterEncoding("utf-8");id = request.getParameter("id");String sql_update = "select * from user_table where id='" + id + "'";//获取你要更新数据的id的数据库信息pst = conn.prepareStatement(sql_update);rs = pst.executeQuery();if (rs.next()) {%><form action="doupdate.jsp?id=<%=rs.getString("id")%>" method="post"><%--切换到doupdate,显⽰要更新的数据信息--%>⽤户名:<input type="text" value="<%=rs.getString("⽤户名")%>" name="user">密码: <input type="text" value="<%=rs.getString("密码") %>" name="psw">⽤户类型:<select name="ty"><option value="管理员">管理员</option><option value="普通⽤户">普通⽤户</option></select><input type="submit" value="修改"><input type="reset" value="取消"></form><%}} catch (Exception e) {out.println(e);}%></body></html>doupdate.jsp:<%--Created by IntelliJ IDEA.User: 长风Date: 2019/9/21Time: 20:03To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" import="java.sql.*" %><html><head><title>数据更新</title></head><body><%!public static final String DBDRIVER="com.mysql.cj.jdbc.Driver";public static final String DBURL="jdbc:mysql://localhost:3306/webstore?&useSSL=false&serverTimezone=UTC"; public static final String DBUSER="root";public static final String DBPASS="123456";%><%Connection conn=null;PreparedStatement pst=null;int rs=0;String ids=null;String user=null;String psw=null;String ty=null;%><%try{Class.forName(DBDRIVER);conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);request.setCharacterEncoding("utf-8");ids=request.getParameter("id");user=request.getParameter("user");psw=request.getParameter("psw");ty=request.getParameter("ty");String sql_update="update user_table set ⽤户名='"+user+"',密码='"+psw+"',⽤户类型='"+ty+"'where id='"+ids+"'"; pst=conn.prepareStatement(sql_update);rs=pst.executeUpdate();if(rs!=0){out.println("更新成功");%><jsp:forward page="select.jsp"></jsp:forward><%--修改之后转到展⽰页⾯--%><%}}catch(Exception e){out.println(e);}%></body></html>运⾏结果更新前更新中:更新后:。
Jsp详解1.简介2.Jsp的运行原理3.Jsp的语法1.Jsp模板元素2.Jsp中的脚本表达式3.Jsp中的脚本片段4.Jsp的声明5.Jsp注释6.Jsp指令1.首先我们来看一下page指令的用法2.下面在来看一下include指令3.最后来看一下taglib指令7.Jsp中内置的9个隐式对象8.JSP标签库1.jspinclude标签2.jspforward标签3.jspparam或者jspparams标签4.jspuseBean标签jspsetProperty标签jspgetProperty标签9.Jsp中怎么排查错误简介:JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP这门技术的最大的特点在于,写jsp就像在写html,但:它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。
不管是JSP还是Servlet,虽然都可以用于开发动态web资源。
但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。
Jsp的运行原理:目标:Web服务器是如何调用并执行一个jsp页面的?Jsp页面中的html排版标签是如何被发送到客户端的?Jsp页面中的java代码服务器是如何执行的?Web服务器在调用jsp时,会给jsp提供一些什么java对象?思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?其实Jsp就是一个Servlet,所以我们要先介绍Servlet的相关技术,当我们第一次访问Jsp 的时候,Jsp引擎都会将这个Jsp翻译成一个Servlet,这个文件存放在Tomcat中的work目录中,这里,我们新建一个MyJsp.jsp页面,然后访问以下,我们看一下翻译后的源码:1.<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5.<head>6.7.<title>My JSP 'MyJsp.jsp' starting page</title>8.9.</head>10.11.<body>12. This is my JSP page. <br>13.</body>14.</html>1.package org.apache.jsp;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import javax.servlet.jsp.*;6.import java.util.*;7.8.public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase9.implements org.apache.jasper.runtime.JspSourceDependent {10.11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();12.13.private static java.util.List _jspx_dependants;14.15.private javax.el.ExpressionFactory _el_expressionfactory;16.private org.apache.AnnotationProcessor _jsp_annotationprocessor;17.18.public Object getDependants() {19.return _jspx_dependants;20. }21.22.public void _jspInit() {23. _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());25. }26.27.public void _jspDestroy() {28. }29.30.public void _jspService(HttpServletRequest request, HttpServletResponse response)31.throws java.io.IOException, ServletException {32.33. PageContext pageContext = null;34. HttpSession session = null;35. ServletContext application = null;36. ServletConfig config = null;37. JspWriter out = null;38. Object page = this;39. JspWriter _jspx_out = null;40. PageContext _jspx_page_context = null;41.42.43.try {44. response.setContentType("text/html;charset=utf-8");45. pageContext = _jspxFactory.getPageContext(this, request, response,46.null, true, 8192, true);47. _jspx_page_context = pageContext;48. application = pageContext.getServletContext();49. config = pageContext.getServletConfig();50. session = pageContext.getSession();51. out = pageContext.getOut();52. _jspx_out = out;53.54. out.write("\r\n");55. out.write("\r\n");56. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");57. out.write("<html>\r\n");58. out.write(" <head>\r\n");59. out.write(" \r\n");60. out.write(" <title>My JSP 'MyJsp.jsp' starting page</title>\r\n");61. out.write(" \r\n");62. out.write(" </head>\r\n");63. out.write(" \r\n");64. out.write(" <body>\r\n");65. out.write(" This is my JSP page. <br>\r\n");66. out.write(" </body>\r\n");67. out.write("</html>\r\n");68. } catch (Throwable t) {69.if (!(t instanceof SkipPageException)){70. out = _jspx_out;71.if (out != null && out.getBufferSize() != 0)72.try { out.clearBuffer(); } catch (java.io.IOException e) {}73.if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);74. }75. } finally {76. _jspxFactory.releasePageContext(_jspx_page_context);77. }78. }79.}我们看到,这个类继承了org.apache.jasper.runtime.HttpJspBase,要想看到这个类的源码,我1./*2. * Licensed to the Apache Software Foundation (ASF) under one or more3. * contributor license agreements. See the NOTICE file distributed with4. * this work for additional information regarding copyright ownership.5. * The ASF licenses this file to You under the Apache License, Version 2.06. * (the "License"); you may not use this file except in compliance with7. * the License. You may obtain a copy of the License at8. *9. * /licenses/LICENSE-2.010. *11. * Unless required by applicable law or agreed to in writing, software12. * distributed under the License is distributed on an "AS IS" BASIS,13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14. * See the License for the specific language governing permissions and15. * limitations under the License.16. */17.18.package org.apache.jasper.runtime;19.20.import java.io.IOException;21.22.import javax.servlet.ServletConfig;23.import javax.servlet.ServletException;24.import javax.servlet.http.HttpServlet;25.import javax.servlet.http.HttpServletRequest;26.import javax.servlet.http.HttpServletResponse;27.import javax.servlet.jsp.HttpJspPage;28.import javax.servlet.jsp.JspFactory;29.30.import piler.Localizer;31.32./**33. * This is the super class of all JSP-generated servlets.34. *35. * @author Anil K. Vijendran36. */37.public abstract class HttpJspBase38.extends HttpServlet39.implements HttpJspPage40.41.42.{43.44.protected HttpJspBase() {45. }46.47.public final void init(ServletConfig config)48.throws ServletException49. {50.super.init(config);51. jspInit();52. _jspInit();53. }54.55.public String getServletInfo() {56.return Localizer.getMessage("");57. }58.59.public final void destroy() {60. jspDestroy();61. _jspDestroy();62. }63.64./**65. * Entry point into service.66. */67.public final void service(HttpServletRequest request, HttpServletResponse response)68.throws ServletException, IOException69. {70. _jspService(request, response);71. }72.73.public void jspInit() {74. }75.76.public void _jspInit() {77. }78.79.public void jspDestroy() {80. }81.82.protected void _jspDestroy() {83. }84.85.public abstract void _jspService(HttpServletRequest request,86. HttpServletResponse response)87.throws ServletException, IOException;88.}好吧,看到了,继承了HttpServlet类,所以说其实Jsp就是一个ServletJsp的语法:1.JSP模版元素2.JSP表达式3.JSP脚本片段4.JSP注释5.JSP指令6.JSP标签7.JSP内置对象8.如何查找JSP页面中的错误Jsp模板元素JSP页面中的HTML内容称之为JSP模版元素。
JSP 更新、添加与删除操作更新数据库中的数据,可以使用SQL语句的UPDATE、INSERT和DELETE 操作,然后将包含UPDATE、INSERT、DELETE的SQL语句交给Statement对象的executeUpdate()方法执行。
Statement对象用于执行不带参数的简单SQL语句。
在J SP程序中,由于外部环境的变化,后台连接数据库中的数据每隔一段时间,就需要更新。
我们不可能直接打开MySQL数据库进行更新,一般情况下都是借助JSP程序进行更新。
1.数据添加案例现在创建一个案例,演示对数据库完成添加操作。
在JSP中,要完成数据库记录的添加操作,需要两个JSP页面,一个为数据输入页面,一个为处理数据页面。
参数值,并依据这些参数值创建sql添加语句。
变量name在获取name的参照值后,还需要进行编码转换,其语句为“name=new String(name.getBytes("iso-8859-1"))”。
下面使用对象stmt的方法executeUpdate执行相应的sql语句。
将上述两个文件复制到Tomcat服务器运行目录下。
打开IE浏览器,在地址栏中输入http://localhost:8080/JSPExample/MySQLInsert.jsp,单击【转到】,会显示如图6-10所示窗口:图6-10 数据添加输入页面在图6-10中的文本域中,分别输入要添加的信息。
然后单击【提交】按钮,会显示如图6-11所示窗口:图6-11 数据添加成功2.删除和修改数据执行删除与修改操作也非常简单,都可以通过向数据库发送sql语句来完成。
只不过执行的sql语句不同罢了。
下面创建一个案例,演示对MySQL数据库执行数据修改和删除。
打开记事本,创建MySQLGeng.jsp文件,完成数据的修改和删除操作。
其代码如下所示:将上述代码保存,并将文件复制到C:\Tomcat 6.0\webapps\JSPExample目录下。
《JSP程序设计》教案第一章:JSP简介1.1 课程目标了解JSP的概念和发展历程掌握JSP的运行原理和基本语法1.2 教学内容JSP的定义和发展历程JSP的运行原理JSP的基本语法1.3 教学方法讲解和演示相结合实例教学1.4 教学资源教材:《JSP程序设计》课件:JSP简介.ppt1.5 教学过程介绍JSP的概念和发展历程(15分钟)讲解JSP的运行原理(15分钟)介绍JSP的基本语法(15分钟)1.6 课后作业掌握JSP的概念和发展历程理解JSP的运行原理第二章:JSP页面结构2.1 课程目标掌握JSP页面的基本结构和标记了解JSP页面的生命周期2.2 教学内容JSP页面的基本结构JSP页面的生命周期JSP标记的使用2.3 教学方法讲解和演示相结合实例教学2.4 教学资源教材:《JSP程序设计》课件:JSP页面结构.ppt2.5 教学过程介绍JSP页面的基本结构(20分钟)讲解JSP页面的生命周期(15分钟)介绍JSP标记的使用(15分钟)2.6 课后作业掌握JSP页面的基本结构了解JSP页面的生命周期第三章:JSP内置对象3.1 课程目标掌握JSP的内置对象及其作用熟练使用JSP内置对象进行数据处理3.2 教学内容JSP内置对象的介绍JSP内置对象的使用方法3.3 教学方法讲解和演示相结合实例教学3.4 教学资源教材:《JSP程序设计》课件:JSP内置对象.ppt3.5 教学过程介绍JSP内置对象(20分钟)讲解JSP内置对象的使用方法(20分钟)3.6 课后作业掌握JSP内置对象的概念和作用熟练使用JSP内置对象进行数据处理第四章:JSP指令4.1 课程目标掌握JSP指令的作用和用法学会使用JSP指令优化页面性能4.2 教学内容JSP指令的介绍JSP指令的使用方法4.3 教学方法讲解和演示相结合实例教学4.4 教学资源教材:《JSP程序设计》课件:JSP指令.ppt4.5 教学过程介绍JSP指令(20分钟)讲解JSP指令的使用方法(15分钟)4.6 课后作业掌握JSP指令的概念和作用学会使用JSP指令优化页面性能第五章:JSP脚本语言5.1 课程目标掌握JSP脚本语言的基本语法学会在JSP页面中使用脚本语言5.2 教学内容JSP脚本语言的介绍JSP脚本语言的基本语法5.3 教学方法讲解和演示相结合实例教学5.4 教学资源教材:《JSP程序设计》课件:JSP脚本语言.ppt5.5 教学过程介绍JSP脚本语言(20分钟)讲解JSP脚本语言的基本语法(15分钟)5.6 课后作业掌握JSP脚本语言的概念和作用学会在JSP页面中使用脚本语言第六章:JSP标准标签库6.1 课程目标掌握JSP标准标签库的基本用法学会使用JSP标准标签库简化页面代码6.2 教学内容JSP标准标签库的介绍JSP标准标签库的基本用法6.3 教学方法讲解和演示相结合实例教学6.4 教学资源教材:《JSP程序设计》课件:JSP标准标签库.ppt6.5 教学过程介绍JSP标准标签库(20分钟)讲解JSP标准标签库的基本用法(20分钟)6.6 课后作业掌握JSP标准标签库的概念和作用学会使用JSP标准标签库简化页面代码第七章:JSP非标准标签库7.1 课程目标了解JSP非标准标签库的来源和作用学会使用JSP非标准标签库提高开发效率7.2 教学内容JSP非标准标签库的介绍JSP非标准标签库的使用方法7.3 教学方法讲解和演示相结合实例教学7.4 教学资源教材:《JSP程序设计》课件:JSP非标准标签库.ppt7.5 教学过程介绍JSP非标准标签库(20分钟)讲解JSP非标准标签库的使用方法(20分钟)7.6 课后作业了解JSP非标准标签库的概念和作用学会使用JSP非标准标签库提高开发效率第八章:JSP数据库操作8.1 课程目标掌握JSP数据库连接的方法学会使用JSP进行数据库操作8.2 教学内容JSP数据库连接的方法JSP数据库操作的常用语句8.3 教学方法讲解和演示相结合实例教学8.4 教学资源教材:《JSP程序设计》课件:JSP数据库操作.ppt8.5 教学过程介绍JSP数据库连接的方法(20分钟)讲解JSP数据库操作的常用语句(20分钟)8.6 课后作业掌握JSP数据库连接的方法学会使用JSP进行数据库操作第九章:JSP会话管理9.1 课程目标了解JSP会话管理的基本原理学会使用JSP进行会话管理9.2 教学内容JSP会话管理的基本原理JSP会话管理的方法9.3 教学方法讲解和演示相结合实例教学9.4 教学资源教材:《JSP程序设计》课件:JSP会话管理.ppt9.5 教学过程介绍JSP会话管理的基本原理(20分钟)讲解JSP会话管理的方法(20分钟)9.6 课后作业了解JSP会话管理的基本原理学会使用JSP进行会话管理第十章:JSP安全与优化10.1 课程目标掌握JSP安全性的基本措施学会对JSP页面进行性能优化10.2 教学内容JSP安全性的基本措施JSP页面性能优化方法10.3 教学方法讲解和演示相结合实例教学10.4 教学资源教材:《JSP程序设计》课件:JSP安全与优化.ppt10.5 教学过程介绍JSP安全性的基本措施(20分钟)讲解JSP页面性能优化方法(20分钟)10.6 课后作业掌握JSP安全性的基本措施学会对JSP页面进行性能优化重点和难点解析1. JSP页面的基本结构:JSP页面由声明、脚本程序、标签库指令、脚本片段、表达式语言、内联标记和注释等部分组成。
Jsp 数据库操作(insert)一、实验目的1、理解掌握Jsp数据库操作的基本语句2、能够理解并使用基本Jsp数据库操作的编程方法二、准备●软件环境:Windows XP、JDK6、TOMCAT5.0●硬件环境:pc机、局域网三、实验内容1、新建ACCESS数据库,文件名为JSPDdataBase.mdb。
并在数据库中建立如图6-1所示的表格JSPUser。
为数据库设立一个名为JSPUser的数据源。
图6-1 表格JSPUser显示结果设计一个页面JSPUser.html(如图6-2所示),用于输入用户的个人信息。
设图6-2 JSPUser.html的信息提交页面计一个页面JSPUser.jsp(如图6-3所示),用于接收用户提交的数据,并把用户提交的数据存入数据库中。
图6-3 信息提交后的页面结果2、设计一个名为JSPSelect.jsp的页面,利用SELECT语句将JSPDataBase.mdb数据库中的所有数据查询并显示在页面上。
四.实验结果1.JSPInsert1.jsp代码:<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>数据插入1</title><style type="text/css"><!--.STYLE1 {font-size: 24px;font-family: "宋体";}.STYLE2 {font-size: 24px}--></style></head><body><% request.setCharacterEncoding("GB2312");%><form id="form1" name="form1" method="post" action="JSPInsert2.jsp"><p align="center" class="STYLE2">个人信息数据</p><table width="280" height="110" border="1" align="center"><tr><td width="95" align="right">姓名:</td><td width="169" ><input type="text" name="username" /></td></tr><tr><td width="95" align="right">密码:</td><td><input type="password" name="password" /></td></tr><tr><td width="95" align="right">地址:</td><td><input type="text" name="address" /></td></tr><tr><td height="38" colspan="2" ><div align="center"><input type="submit" name="Submit" value="提交" /> <input type="reset" name="Submit2" value="重置" /></div></td></tr></table></form></body></html>截图:2.JSPInsert2.jsp代码:<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>数据插入2</title></head><body><%request.setCharacterEncoding("GB2312");String username=request.getParameter("username");String password=request.getParameter("password");String address=request.getParameter("address");String sitePath = request.getRealPath("/");String dbPath = sitePath+"JSPDataBase.mdb";String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbPath;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn=DriverManager.getConnection(strurl);Statement stmt=conn.createStatement();String sql="insert into JSPUser(name,password,address) values ('"+username+"','"+password+"','"+address+"')";stmt.executeUpdate(sql);stmt.close();conn.close();}catch(Exception ex){};%><p align="center">您输入的的个人信息为:</p><p align="center">您的姓名:<%=username%></p><p align="center">您的密码:<%=password%></p><p align="center">您的地址:<%=address%></p><p align="center">您的个人信息已经存入数据库中!!!</p></body></html>3.查询代码:<%@ page contentType="text/html; charset=gb2312" language="java"import="java.sql.*" errorPage="" %><%//数据库连接代码片断://获得站点所在文件夹的路径String sitePath = request.getRealPath("/");String dbPath = sitePath+"JSPDataBase.mdb"; //连接构成完整的路径//形成完成的数据库连接的URLString strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbPath;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载JDBC-ODBC桥驱动程序Connection conn=DriverManager.getConnection(strurl);Statement stmt=conn.createStatement();String sql="select * from JSPUser";ResultSet rs=stmt.executeQuery(sql);%><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>查询数据</title></head><body><table width="660" height="48" border="1" align="center" cellpadding="0" bordercolorlight="#000000" cellspacing="2" bordercolor="#FFFFFF"><tr bgcolor="#33FFCC"><th><div align="center">ID编号</div></th><th><div align="center">用户名</div></th><th><div align="center">密码</div></th><th><div align="center">地址</div></th></tr><%while(rs.next()){%><tr bgcolor="#CCcF90"><td><%=rs.getInt(1)%></td><td><%=rs.getString(2)%></td><td><%=rs.getString(3)%></td><td><%=rs.getString(4)%></td></tr><%}rs.close();stmt.close();conn.close();}catch(Exception ex){out.println(ex.getMessage());}%></table></body></html>截图:。
JSP MySql数据库的连接步骤先下载MySQL数据库5.1版本的JDBC驱动程序,并将mysql-connector-java-5.1.5-bin.jar加入到classpath的设置之中。
如果在Eclipse中进行操作,可以通过前边所介绍的构建路径方法,将该jar文件添加到支持库中。
1.加载JDBC驱动程序首先必须通过ng.Class类的forName( )动态加载驱动程序类,并向Drive rManager注册JDBC驱动程序(驱动程序会自动通过DriverManager.registerDriver()方法注册)。
MySQL的驱动程序类是com.mysql.jdbc.Driver,加载MySQL的驱动程序代码如下所示:文件名:AddJDBCDriver.jsp2.提供JDBC URL当在Java程序中完成了对MySQL驱动程序的加载后,接下来创建字符串来指定数据源相关属性,即JDBC URL。
JDBC URL定义了连接数据库时的协议、子协议和数据源名称。
在JDBC中总是以jdbc开始;“子协议”是桥接的驱动程序或是数据库管理系统名称,使用MySQL的话是“mysql”;“数据源名称”表示数据库来源的地址和连接端口。
其MySQL的JDBC URL的格式如下:主机名称可以是本机localhost或是其他连接主机,连接端口为3306,假如要连3.获取Connection对象要连接数据库,实际上就是向java.sql.DriverManager要求并获得java.sql.Conne ction对象。
Connection是数据库连接的具体代表对象,一个Connection对象就代表一个数据库连接,可以使用DriverManager的getConnection()方法,指定JDBC UR L作为自变量并获得Connection对象。
其代码如下所示:在处理JDBC时经常遇到的异常对象,故需要使用try-catch或thorws明确处理,它表示JDBC操作过程中若发生错误时的具体对象代表。
使用JSP对数据库进行增删改查注意红体字!首先,打开sql server 2005,输入用户名(我用的登录名是panpan)密码(我设置的是123)。
先建个表student,Create table stu(id number(30) ,name varchar(50) ,age number(30),sex varchar(30),major varchar(50) );打开MyEclipse,新建一个新项目,让后将index.jsp删除,然后在webRoot文件中新建以下几个jsp文件。
index.jsp<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>输入学生信息界面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script type="text/javascript"">function validate(){var id=document.forms[0].id.value;var name=document.forms[0].name.value;var age=document.forms[0].age.value;var major=document.forms[0].major.value;if(id<=0){alert("学号不能为空,请输入学号!");return false;}else if(name.length<=0){alert("姓名不能为空,请输入姓名!");return false;}else if(age<=0){alert("请输入合法年龄!");return false;}else if(major.length<=0){alert("专业不能为空,请输入所学专业!");return false;}else{return true;}}</script></head><body><br><center><h2>学生信息输入</h2><hr><form action="insert.jsp" method="post" id="form" onSubmit= "validate()" ><h4> 学号:<input type="text" name="id" class="{required:true}"></input><br></h4> <h4> 姓名:<input type="text" name="name"></input><br></h4><h4> 年龄:<input type="text" name="age"></input><br></h4><h4> 性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br></h4><h4> 专业:<input type="text" name="major"></input><br></h4><input type="submit" value="提交"/></form><a href=layout.jsp>查看已输入信息</a></center></body></html>insert.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>插入学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%request.setCharacterEncoding("gb2312");String id=request.getParameter("id");String name=request.getParameter("name");System.out.println(name);String age=request.getParameter("age");String sex=request.getParameter("sex");String major=request.getParameter("major");Connection conn=null;Statement stat=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的String password="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();int rs=stat.executeUpdate("insert into stu(id,name,age,sex,major)values("+id+",'"+name+"',"+age+",'"+sex+"','"+major+"')");%><center><br><a href=index.jsp>返回信息输入页面</a> <a href=layout.jsp>进入信息查询页面</a></center><%if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>layout.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%response.setCharacterEncoding("gb2312");request.setCharacterEncoding("gb2312");String id=request.getParameter("id");String name=request.getParameter("name");String age=request.getParameter("age");String sex=request.getParameter("sex");String major=request.getParameter("major");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的String password="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from stu");%><br><h2>学生信息</h2> <hr><br><h3>全部学生信息如下</h3><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("sex")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");%><td><a href="delete.jsp?id=<%=rs.getInt("id") %>">删除</a></td><td><a href="update.jsp?id=<%=rs.getInt("id") %>">修改</a></td><%out.print("</tr>");}%></table><br><h3><a href=index.jsp>返回信息输入页面</a></h3><br><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>update.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%response.setCharacterEncoding("gb2312");request.setCharacterEncoding("gb2312");String id=request.getParameter("id");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的Stringpassword="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from stu where id="+id+"");%><br><h2>学生信息</h2> <hr><br><h3>要修改的学生信息如下</h3><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("sex")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");out.print("</tr>");%></table><br><br><h3>将学生信息更改为:</h3><form action="update2.jsp" method="post" ><h4> 学号:<input type="text" name="id"value="<%=rs.getInt("id") %>" title="学号不能改变"></input><br></h4><h4> 姓名:<input type="text" name="name"title="姓名不能为空"></input><br></h4><h4> 年龄:<input type="text" name="age"title="年龄不能为空"></input><br></h4><h4> 性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br></h4><h4> 专业:<input type="text" name="major"title="专业不能为空"></input><br></h4><input type="submit" value="修改"/></form><br><h3><a href=index.jsp>返回信息输入页面</a></h3><h3><a href=layout.jsp>返回信息查询页面</a></h3><%}%><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>update2.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>修改页面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%request.setCharacterEncoding("gb2312");String id1=request.getParameter("id");String name1=request.getParameter("name");String age1=request.getParameter("age");String sex1=request.getParameter("sex");String major1=request.getParameter("major");Connection conn=null;Statement stat=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的String password="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();stat.execute("update stu set id="+id1+",name='"+name1+"',age="+age1+",sex='"+sex1+"',major='"+major1+"'whereid="+id1+"");ResultSet rs=stat.executeQuery("select * from stu where id="+id1+"");%><br><h3>修改成功!</h3><br><h3>修改后的信息为:</h3><hr><br><br><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("sex")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");out.print("</tr>");}%></table><br><br><h3><a href=index.jsp>返回信息输入页面</a></h3><h3><a href=layout.jsp>返回信息查询页面</a></h3><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null) {conn.close();}%></body></html>。