三个范例掌握servlet数据库操作

范例一:读取数据

import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class servletDB extends HttpServlet{
 public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
  PrintWriter pw;
  response.setContentType("text/html;charset=gb2312");
  pw=response.getWriter();
  pw.write("<html><head><title>servlet DataBase Test</title></head><body><p align=/"center/">这是使用servlet输入的数据</p>");
  Connection con=null;
  try
  {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   con=DriverManager.getConnection("jdbc:odbc:studentdb");
   Statement statement=con.createStatement();
   ResultSet rset=statement.executeQuery("select * from sinformation");
   pw.write("<table width=/"80%/" border=/"1/"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td></tr>");
   while(rset.next())
   {
    pw.write("<tr><td>"+rset.getString("学号")+"</td>"+"<td>"+rset.getString("姓名")+"</td>"+"<td>"+rset.getInt("年龄")+"</td>"+"<td>"+rset.getString("性别")+"</td></tr>");
   }
   pw.write("</table></body></html>");
   statement.close();
   con.close();
  }
  catch(SQLException e)
  {
   e.printStackTrace();
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
 }
}

范例二:想数据库中添加数据
AddData.jsp代码如下

<%@ page contentType="text/html;charset=gb2312" %>
<html>
   <head>
      <title>添加数据</title>
   </head>
   <body>
      <center>请输入添加的信息</center>
      <form action="servlet" method="post" name="form1">
         <table>
            <tr>
               <td>学号</td>
               <td><input type="text" name="number" size="8" maxlength="8"></td>
            </tr>
            <tr>
               <td>姓名</td>
               <td><input type="text" name="name" size="8" maxlength="4"></td>
            </tr>
            <tr>
                <td>年龄</td>
                <td><input type="text" name="age" size="8" maxlength="3"></td>
            </tr>
            <tr>
                <td>性别</td>
                <td><input type="text" name="sex" size="8" maxlength="2"></td>
            </tr>
         </table>
         <br>
         <p align="left">
           <input type="submit" name="submit" value="添加">
           &nbsp &nbsp &nbsp <input type="reset" name="reset" value="清空">
         </p>
      </form>
   </body>
</html>

servletDB.java代码如下:
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class servletDB extends HttpServlet{
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
     String number=request.getParameter("number");
     String name=request.getParameter("name");
     int age=Integer.parseInt(request.getParameter("age"));
     String sex=request.getParameter("sex");
     
     Connection con=null;
     Statement statement=null;
     ResultSet rset=null;
     if(number==null||number.equals(""))
     {
      response.sendRedirect("
http://localhost:8080/AddData.jsp");
     }
     else
     {
      number=new String(number.getBytes("ISO-8859-1"),"GB2312");
     }
     
     if(name==null||name.equals(""))
     {
      response.sendRedirect("
http://localhost:8080/AddData.jsp");
     }
     else
     {
      name=new String(name.getBytes("ISO-8859-1"),"GB2312");
     }
     
     if(age<=0||age>100)
     {
      response.sendRedirect("
http://localhost:8080/AddData.jsp");
     }
     else
     {
      age=Integer.parseInt(request.getParameter("age"));
     }
     if(sex==null||sex.equals(""))
     {
      response.sendRedirect("
http://localhost:8080/AddData.jsp");
     }
     else
     {
      sex=new String(sex.getBytes("ISO-8859-1"),"GB2312");
     }
     PrintWriter pw;
     response.setContentType("text/html;charset=gb2312");
     pw=response.getWriter();
     
     try
     {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      con=DriverManager.getConnection("jdbc:odbc:studentdb");
      statement=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      String sql="select * from sinformation where 学号='"+number+"'";
      rset=statement.executeQuery(sql);
      if(rset.next()==true)
      {
       pw.write("<html><head><title>error page</title></head><body><center>你添加的信息的学号已经存在,请重新输入<br><br><a href=/"AddData.jsp/">返回</a></center></body></html>");
      }
      else
      {
       String addsql="insert into sinformation(学号,姓名,年龄,性别)values('"+number+"','"+name+"',"+age+",'"+sex+"')";
       statement.executeUpdate(addsql);
       
       rset=statement.executeQuery("select * from sinformation");
       pw.write("<table width=/"80%/" border=/"1/"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td></tr>");
    while(rset.next())
    {
     pw.write("<tr><td>"+rset.getString("学号")+"</td>"+"<td>"+rset.getString("姓名")+"</td>"+"<td>"+rset.getInt("年龄")+"</td>"+"<td>"+rset.getString("性别")+"</td></tr>");
    }
    pw.write("</table><br><a href=/"AddData.jsp/">继续添加</a></body></html>");
      }
      statement.close();
      con.close();

      pw.close();
     }
     catch(SQLException e)
     {
      e.printStackTrace();
     }
     catch(Exception e)
     {
      e.printStackTrace();
     }
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
     doGet(request,response);
    }
}

按照以前说过的方法发布此程序,然后就可以看到其运行结果了

范例三:删除数据信息

AddData.jsp代码如下

<%@ page contentType="text/html;charset=gb2312" %>
<html>
   <head>
      <title>删除数据</title>
   </head>
   <body>
      <center>请输入删除的学号信息
      <form action="servlet" method="post" name="form1">
           学号<input type="text" name="number" size="8" maxlength="8">

           <input type="submit" name="submit" value="删除">
           &nbsp &nbsp &nbsp <input type="reset" name="reset" value="清空">
         </center>
      </form>
   </body>
</html>

servletDB.java代码如下

import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class servletDB extends HttpServlet{
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
     String number=request.getParameter("number");
   
     Connection con=null;
     Statement statement=null;
     ResultSet rset=null;
     if(number==null||number.equals(""))
     {
      response.sendRedirect("
http://localhost:8080/AddData.jsp");
     }
     
     PrintWriter pw;
     response.setContentType("text/html;charset=gb2312");
     pw=response.getWriter();
     
     try
     {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      con=DriverManager.getConnection("jdbc:odbc:studentdb");
      statement=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      String sql="select * from sinformation where 学号='"+number+"'";
      rset=statement.executeQuery(sql);
      if(!rset.next())
      {
       pw.write("<html><head><title>error page</title></head><body><center>没有您要删除的学号,请重新输入<br><br><a href=/"AddData.jsp/">返回</a></center></body></html>");
      }
      else
      {
       String delsql="delete * from sinformation where 学号='"+number+"'";
       statement.executeUpdate(delsql);
       
       rset=statement.executeQuery("select * from sinformation");
       pw.write("<html><body><table width=/"80%/" border=/"1/"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td></tr>");
    while(rset.next())
    {
     pw.write("<tr><td>"+rset.getString("学号")+"</td>"+"<td>"+rset.getString("姓名")+"</td>"+"<td>"+rset.getInt("年龄")+"</td>"+"<td>"+rset.getString("性别")+"</td></tr>");
    }
    pw.write("</table><br><a href=/"AddData.jsp/">继续删除</a></body></html>");
      }
      statement.close();
      con.close();

      pw.close();
     }
     catch(SQLException e)
     {
      e.printStackTrace();
     }
     catch(Exception e)
     {
      e.printStackTrace();
     }
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
     doGet(request,response);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值