热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

JavaWeb应用实例:用servlet实现oracle基本增删改查

很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 ,我将与大家分享一下我学Jav

很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的 ,所以从今天开始 ,我将与大家分享一下我学Java WEB写的一些小实例  ,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深

废话不多话,开始我们的第一个实例:

 servlet实现Oracle 基本增删改查

开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g

首先附上数据库创建脚本:

create table student( 
id VARCHAR2(50) PRIMARY KEY NOT NULL, 
name varchar2(50) NOT NULL, 
calssGrent varchar2(50) NOT NULL , 
result varchar(12) NOT NULL 
); 
insert into student(id,name,calssGrent,result) values(perseq.nextval,'张三','33','98') 

下图为代码结构图和功能演示界面做的比较糟糕 只为实现功能:

MMC_01.Java

页面 //主界面提供添加,修改删除的方法

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import oracle.jdbc.oracore.TDSPatch; 
 
public class MMC_01 extends HttpServlet 
{ 
  // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中 
 
  // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住 
  public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
  // 连接数据库的用户名 
  public static final String DBUSER = "scott"; 
  // 连接数据库的密码 
  public static final String DBPASS = "tiger"; 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    //设置请求和响应的编码 ,不然页面上容易出现乱码 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
   
    response.setContentType("text/html;UTF-8"); 
    //输出流 
    PrintWriter out = response.getWriter(); 
    //数据库连接代码 
    try 
    { 
      Connection cOnn= null; // 表示数据库的连接的对象 
      Statement stmt = null; // 表示数据库的更新操作 
      String sql="insert into student(id,name,calssGrent,result) values('67','刘12宇','33','98')"; 
      System.out.println(sql) ; 
      // 1、使用Class类加载驱动程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、连接数据库 
      cOnn= DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      // 3、Statement接口需要通过Connection接口进行实例化操作 
      stmt = conn.createStatement(); 
      //用 rs获取查询结果 ,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,- 
      ResultSet rs=stmt.executeQuery("select *from student"); 
      out.println(""); 
      out.println(""); 
      out.println(" "); 
      out.println(" "); 
      //输出表头部分 
      out.print(""); 
      while(rs.next()) 
      { 
        //获取数据库中的ID 
        String id=rs.getString("id"); 
        //输出一列元素 
        out.print("" + 
        "" + 
        ""); 
         
      } 
      out.println(""); 
      out.println(" "); 
      out.println("");  
      conn.close(); 
       
    } 
    catch (Exception e) 
    { 
      e.printStackTrace(); 
    } 
    out.flush(); 
    out.close(); 
  } 
 
} 

 UpdatePage.java    //获取要修改的数据 ,并把修改过的数据提交给Update

package org.lsy.servlet; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import com.sun.crypto.provider.RSACipher; 
 
public class UpdatePage extends HttpServlet 
{ 
  // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住 
    public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
    // 连接数据库的用户名 
    public static final String DBUSER = "scott"; 
    // 连接数据库的密码 
    public static final String DBPASS = "tiger"; 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    String id=request.getParameter("id"); 
    //设置请求和响应的编码 ,不然页面上容易出现乱码 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
    response.setContentType("text/html;UTF-8"); 
    PrintWriter out = response.getWriter(); 
    try 
    { 
      Connection cOnn= null; // 表示数据库的连接的对象 
      Statement stmt = null; // 表示数据库的更新操作 
      // 1、使用Class类加载驱动程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、连接数据库 
      cOnn= DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      // 3、Statement接口需要通过Connection接口进行实例化操作 
      stmt = conn.createStatement(); 
      //用 rs获取查询结果 ,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,- 
      ResultSet rs=stmt.executeQuery("select *from student where id='"+id+"'"); 
      while (rs.next()) 
      { 
      out.println(""); 
      out.println(""); 
      out.println(" "); 
      out.println(" "); 
      //输入成绩的表单,提交至Update 
      out.print("  "); 
      out.print("
姓名" + "班级成绩修改删除
"+rs.getString("name") +""+rs.getString("calssGrent")+"" + ""+rs.getString("result")+"修改 删除
添加数据
"); out.print(""); out.print(""); //为了作为查询数据库的条件 ,这里要把ID传过去 out.print(""); out.print("
姓名:
      name='name' size=20 >
班级:
成绩:
"); out.print(" "); out.println(""); } out.flush(); out.close(); } catch (Exception e) { e.printStackTrace();// TODO: handle exception } } }

Update.java  接收要修改的数据 ,并更新数据库

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class Update extends HttpServlet 
{ 
  // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中 
 
  // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住 
  public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
  // 连接数据库的用户名 
  public static final String DBUSER = "scott"; 
  // 连接数据库的密码 
  public static final String DBPASS = "tiger"; 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    try 
     
    { 
      request.setCharacterEncoding("UTF-8"); 
      response.setCharacterEncoding("UTF-8");  
      response.setContentType("text/html;UTF-8"); 
      PrintWriter out = response.getWriter();  
      Connection cOnn= null; // 表示数据库的连接的对象 
      Statement stmt = null; // 表示数据库的更新操作 
      //获取表单提交的参数 
      String id=request.getParameter("id"); 
      System.out.println(id); 
      String name=request.getParameter("name"); 
      String grent=request.getParameter("grent"); 
      String result=request.getParameter("result"); 
      //更新SQL 
      String sqlString="update student set name='"+name+"' ," + 
          "calssGrent='"+grent+"',result='"+result+"' where id='"+id+"' ";  
      // 1、使用Class类加载驱动程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、连接数据库 
      cOnn= DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      // 3、Statement接口需要通过Connection接口进行实例化操作 
      stmt = conn.createStatement(); 
      int pd=stmt.executeUpdate(sqlString); 
      if(pd!=0) 
      { 
      out.println(""); 
      out.println(""); 
      out.println(" "); 
      out.println(" "); 
      out.print(" 更新成功
查看列表 "); out.println(" "); out.println(""); } out.flush(); out.close(); stmt.close(); conn.close(); } catch (Exception e) { // TODO: handle exception } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

addPage .java,添加数据页面

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class AddPage extends HttpServlet 
{ 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    //设置请求和响应的编码 ,不然页面上容易出现乱码 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
    response.setContentType("text/html;UTF-8"); 
    PrintWriter out = response.getWriter(); 
    out.println(""); 
    out.println(""); 
    out.println(" "); 
    out.println(" "); 
    //输入成绩的表单,提交至add 
    out.print("  "); 
    out.print(""); 
    out.print(""); 
    out.print("");  
    out.print("
姓名:
班级:
成绩:
"); out.println("查看列表"); out.println(" "); out.println(""); out.flush(); out.close(); } }

add   接收addpage传来的传,更新数据库

package org.lsy.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.Statement; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import com.sun.org.apache.xerces.internal.impl.io.UTF8Reader; 
 
import oracle.jdbc.oracore.TDSPatch; 
 
public class Add extends HttpServlet 
{ 
  // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中 
 
  // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住 
  public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY"; 
  // 连接数据库的用户名 
  public static final String DBUSER = "scott"; 
  // 连接数据库的密码 
  public static final String DBPASS = "tiger"; 
 
  @Override 
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException 
  { 
    // TODO Auto-generated method stub 
    doGet(req, resp); 
  } 
 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
  { 
    //设置请求和响应的编码 ,不然页面上容易出现乱码 
    request.setCharacterEncoding("UTF-8"); 
    response.setCharacterEncoding("UTF-8");  
   
    response.setContentType("text/html;UTF-8"); 
    //输出流 
    PrintWriter out = response.getWriter(); 
    //数据库连接代码 
    try 
    { 
      Connection cOnn= null; // 表示数据库的连接的对象 
      Statement pstmt = null; // 表示数据库的更新操作 
      String nameString=request.getParameter("name"); 
      String grentString=request.getParameter("grent"); 
      String resultString=request.getParameter("result"); 
      System.out.print(nameString); 
      String sql="insert into student(id,name,calssGrent,result)  

 values(perseq.nextval,'"+nameString+"','"+grentString+"','"+resultString+"')"; 
   
      // 1、使用Class类加载驱动程序 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      // 2、连接数据库 
      cOnn= DriverManager.getConnection(DBURL, DBUSER, DBPASS); 
      pstmt=conn.createStatement(); 
      int pd=pstmt.executeUpdate(sql); 
      if (pd!=0) 
      { 
        out.println("添加成功"); 
        out.println("
查看列表"); } conn.close(); } catch (Exception e) { e.printStackTrace(); } out.flush(); out.close(); } }

web.xml 配置文件

<&#63;xml version="1.0" encoding="UTF-8"&#63;> 
 
   
  
  index.jsp 
  
  MMC_01 
  org.lsy.servlet.MMC_01 
  
  
  delete 
  org.lsy.servlet.delete 
  
  
  Add 
  org.lsy.servlet.Add 
  
  
  AddPage 
  org.lsy.servlet.AddPage 
  
  
  UpdatePage 
  org.lsy.servlet.UpdatePage 
  
  
  Update 
  org.lsy.servlet.Update 
  
 
 
  
  MMC_01 
  /MMC_01 
  
  
  delete 
  /delete 
  
  
  Add 
  /Add 
  
  
  AddPage 
  /AddPage 
  
  
  UpdatePage 
  /UpdatePage 
  
  
  Update 
  /Update 
  
 

本人并非老鸟,一直处于学习中,有什么错误的地方还请指证,上面的代码有很多重复的部分,很多不合理的地方 ,比较数据库连接直接暴露于操作servlet中  ,为了看的更直观 ,我就没有更改……

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文介绍如何将自定义项目设置为Tomcat的默认访问项目,使得通过IP地址访问时直接展示该自定义项目。提供了三种配置方法:修改项目路径、调整配置文件以及使用WAR包部署。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
author-avatar
潘泓浩_236
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有