J2EE学习笔记——Servlet操作数据库(编辑数据)

来源:互联网 发布:测量数据如何导入cad 编辑:程序博客网 时间:2024/05/16 01:14

首先从  显示页面(show)  把  所要编辑的数据的列的数据传送到  下一页     

package com.xuyan; import  javax.servlet.http.*; import   java.io.*; import   java.sql.*;public class Datashow extends HttpServlet{          public void  doGet(HttpServletRequest req,HttpServletResponse res) {            String username=req.getParameter("posturl");        Connection  con=null;        Statement   sm=null;    ResultSet   rs=null;        int  pageSize=4;//每页显示多少记录    int  pageNow=1;//当前显示第几页    int  pageCount=0;//共有多少页    int  rowCount=0;//共有多少条记录        //设置中文字体    res.setCharacterEncoding("gbk");        String getPageNow=req.getParameter("spageNow");            if(getPageNow!=null)    {    pageNow=Integer.parseInt(getPageNow);    }        try    {            PrintWriter pw=res.getWriter();                 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动         con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=StudentInfo","sa","1234");         sm=con.createStatement();         rs=sm.executeQuery("select  count(*) from student");//查询共有多少记录                                                                              if(rs.next())  //此处说明有记录        {     rowCount=rs.getInt(1);        if(rowCount%pageSize==0)    {    pageCount=rowCount/pageSize;    }        else      {    pageCount=rowCount/pageSize+1;  //int类型  会转化为整数    }                        pw.println("<body><center>");            pw.println("欢迎   :"+username+"   进入");    pw.println("<br>");    pw.println("<br>");        pw.println("共有记录数 :" + rowCount);         pw.println("共有页码数:" +pageCount);        //查询      rs=sm.executeQuery("select top "+pageSize+"*  from student  where ID not in(select top "+pageSize*(pageNow-1)+" ID from student)");                       pw.println("<table border=2>");        pw.println("<tr bgcolor=pink><th>Id</th><th>Name</th><th>Genger</th><th>Age</th><th>Grade</th><th>删除数据</th><th>编辑数据</th></tr>");            while(rs.next())    {                pw.println("<td>"+rs.getInt(1)+"</td>");    pw.println("<td>"+rs.getString(2)+"</td>");    pw.println("<td>"+rs.getString(3)+"</td>");    pw.println("<td>"+rs.getString(4)+"</td>");    pw.println("<td>"+rs.getString(5)+"</td>");            pw.println("<td><a href=deleteb?canshu="+rs.getInt(1)+">删除数据</a></td>");    pw.println("<td><a href=edittable?editid="+rs.getInt(1)+"&editname="+rs.getString(2)+"&editgender="+rs.getString(3)+"&editage="+rs.getString(4)+"&editgrade="+rs.getString(5)+">编辑数据</a></td>");            pw.println("</tr>");                         }        }        else        {         pw.println("NotFoundSQL");    }             pw.println("</table >");                        for(int i=1;i<=pageCount;i++){        pw.println("<a href=show?spageNow="+i+">"+i+"</a>");    }        if((pageNow-1)>0)    {    pw.println("<a href=show?spageNow="+(pageNow-1)+">上一页</a>");        }            if((pageNow)<pageCount)    {    pw.println("<a href=show?spageNow="+(pageNow+1)+">下一页</a>");        }            }        catch(Exception ex)    {    ex.printStackTrace();           }        finally    {            try{            if(rs!=null)    {  rs.close();        }        if(sm!=null){    sm.close();    }        if(con!=null){        con.close();    }        }        catch(SQLException eexx)    {    eexx.printStackTrace();    }    }            }                 public void  doPost(HttpServletRequest req,HttpServletResponse res) {               this.doGet(req,res);                    }    }


 

 

然后是    先用  input   先读出原来的数据:edittable

/** * AWT Sample application * * @author  * @version 1.00 12/10/21 *//** * AWT Sample application * * @author  * @version 1.00 12/10/21 */  package com.xuyan; import  javax.servlet.http.*; import   java.io.*;  import   java.sql.*;public class Updatatable extends HttpServlet{                    //req用于向浏览器请求信息    //res用于向浏览器返回信息        public void  doGet(HttpServletRequest req,HttpServletResponse res) {                   //String par=req.getParameter("editid");                          //设置中文字体    res.setCharacterEncoding("gbk");            try    {                PrintWriter pw=res.getWriter();                                pw.println("<html>");    pw.println("<head>");    pw.println("<title>test</title>");    pw.println("</head>");    pw.println("<body>");    pw.println("<form action=editdata method=post>");    pw.println("<h1>数据编辑</h1>");                                                pw.println("<table border=2>");        pw.println("<tr><th>ID</th><th>Name</th><th>Genger</th><th>Age</th><th>Grade</th></tr>");            pw.println("<td><input type=text value="+req.getParameter("editid")+" name=studentID></td>");                    pw.println("<td><input type=text value="+req.getParameter("editname")+"   name=studentname></td>");    pw.println("<td><input type=text value="+req.getParameter("editgender")+" name=gender></td>");    pw.println("<td><input type=text value="+req.getParameter("editage")+" name=age></td>");    pw.println("<td><input type=text value="+req.getParameter("editgrade")+" name=grade></td>");        pw.println("<td><input type=submit value=编辑></td>");                pw.println("</table >");                                                        pw.println("</form>");    pw.println("</body>");    pw.println("</html>");                                                     }        catch(Exception ex)    {    ex.printStackTrace();           }        finally    {                    }            }                 public void  doPost(HttpServletRequest req,HttpServletResponse res) {               this.doGet(req,res);                    }    }


 

然后跳转到数据库  编辑页:editdata

 

/** * AWT Sample application * * @author  * @version 1.00 12/10/21 *//** * AWT Sample application * * @author  * @version 1.00 12/10/21 */  package com.xuyan; import  javax.servlet.http.*; import   java.io.*;  import   java.sql.*;public class EditData extends HttpServlet{                    //req用于向浏览器请求信息    //res用于向浏览器返回信息        public void  doGet(HttpServletRequest req,HttpServletResponse res) {             String par=req.getParameter("studentID");         String name=req.getParameter("studentname");            String sex=req.getParameter("gender");                 String age=req.getParameter("age");         String grade=req.getParameter("grade");              Connection  con=null;        Statement   sm=null;    ResultSet   rs=null;                //设置中文字体    res.setCharacterEncoding("gbk");            try    {                    PrintWriter pw=res.getWriter();                                    pw.println(name);                                    pw.println(sex);                                    pw.println(par);                                        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动             con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=StudentInfo","sa","1234");              sm=con.createStatement();            rs=sm.executeQuery("update student  set  studentname='"+name+"',gender='"+sex+"',age='"+age+"',grade='"+grade+"' where id="+par+"");//查询共有多少记录                                                           }        catch(Exception ex)    {    ex.printStackTrace();           }        finally    {        //            try    {        res.sendRedirect("show");    }        catch(IOException eexx)    {        eexx.printStackTrace();    }                //        try{                if(rs!=null)    {  rs.close();        }        if(sm!=null){    sm.close();    }        if(con!=null){        con.close();    }        }        catch(SQLException eexx)    {    eexx.printStackTrace();    }    }            }                 public void  doPost(HttpServletRequest req,HttpServletResponse res) {               this.doGet(req,res);                    }    }


 

web.xml  :

 

<?xml version="1.0" encoding="gbk"?><!DOCTYPE web-app    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"    "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app>  <display-name> Welcome to TomCat</display-name>  <description>    Welcome to TomCat  </description>      <!-- Define the Manager Servlet Mapping -->  <servlet><!--给你的servlet取名,任意-->    <servlet-name>hello</servlet-name><!--指明servlet的包名+类名-->      <servlet-class>com.xuyan.Hello</servlet-class>  </servlet>  <servlet-mapping><!--同上方名字一样,必须-->    <servlet-name>hello</servlet-name><!--在浏览器中访问的名字-->    <url-pattern>/xuyan</url-pattern>  </servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>chuli</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.LoginCL</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>chuli</servlet-name><!--在浏览器中访问的名字--><url-pattern>/login</url-pattern></servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>welcome</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.welcome</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>welcome</servlet-name><!--在浏览器中访问的名字--><url-pattern>/welcome</url-pattern></servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>data</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.Datashow</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>data</servlet-name><!--在浏览器中访问的名字--><url-pattern>/show</url-pattern></servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>login2</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.Logincookie</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>login2</servlet-name><!--在浏览器中访问的名字--><url-pattern>/logincookie</url-pattern></servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>readcookie</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.Cookieread</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>readcookie</servlet-name><!--在浏览器中访问的名字--><url-pattern>/read</url-pattern></servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>deletea</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.Deletedata</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>deletea</servlet-name><!--在浏览器中访问的名字--><url-pattern>/deleteb</url-pattern></servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>edittable</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.Updatatable</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>edittable</servlet-name><!--在浏览器中访问的名字--><url-pattern>/edittable</url-pattern></servlet-mapping><servlet><!--给你的servlet取名,任意--><servlet-name>edituser</servlet-name><!--指明servlet的包名+类名--><servlet-class>com.xuyan.EditData</servlet-class></servlet><servlet-mapping><!--同上方名字一样,必须--><servlet-name>edituser</servlet-name><!--在浏览器中访问的名字--><url-pattern>/editdata</url-pattern></servlet-mapping></web-app>

 

 

 

 show页:

 


 

 

 

 

 

 

edittable页: 

 

 

 

原创粉丝点击