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

首先从  显示页面(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页: 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值