zoukankan      html  css  js  c++  java
  • 使用MyEclipse中servlet对SQL Server 2008的CRUD

    1、在MyEclipse下建立Web Project,找到根目录建立Database文件夹和Doc文件夹,Database用于保存数据库信息,Doc用于保存数据库表信息。

    2、打开SQL Server 2008 ,新建数据库CRUD,将路径添加到Database文件夹下。

    3、写SQL语句添加数据库表,保存在Doc文件夹下。到这对数据库的操作就完成了。

    CREATE TABLE Student(
      sno nvarchar(10) not null,
      sname nvarchar(10) null,
      constraint PK_Student primary key(sno)
    );
    insert Student values('001','张三');
    insert Student values('002','李四');
    insert Student values('003','王五');
    insert Student values('004','赵六');
    

    4、将sqljdbc4.jar(没有可在网上下载)拷贝到WEB-INF下的lib文件夹下,然后建立StudentList.jsp,输入以下代码:

    <%@  import="java.sql.*" %>
    <%
       Connection con=null;
       Statement stmt=null;
       ResultSet rs=null;
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
       con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;          DatabaseName=CRUD","sa","123");
       String SQL="SELECT * FROM Student";
       stmt=con.createStatement();
       rs=stmt.executeQuery(SQL);
    %>
      <center>    
            学生列表
        <br>
        <br>
        <a href="StudentAdd.html">添加</a>
        <br>
        <br>
        
        <table border="1" cellspacing="0" cellpadding="4">
          <tr>
             <th>学号</th><th>姓名</th><th>操作</th>
          </tr>
        <%while (rs.next()) { %>
          <tr>
            <td><%=rs.getString("sno") %></td>
            <td><%=rs.getString("sname") %></td>
            <td>
        	<a href="StudentEdit.jsp?sno=<%=rs.getString("sno") %>" >编辑</a> 
        	<a href="servlet/DeleteStudent.do?sno=<%=rs.getString("sno") %>" >删除</a> </td>
          </tr>
        <% } %>
        </table>
        <br>
        
        <br>
        <a href="index.jsp">返回</a>
        </center>
    

      

    5、建立Packagecom.langguojie.CRUD.servlet”,然后建立servletAddStudent.java”只选择“doPost()”函数即可。添加如下代码:

            import java.sql.*;
            // 获取数据
    	request.setCharacterEncoding("utf-8");
    	String strStudentSno = "";
    	String strStudentSname = "";
    	strStudentSno = request.getParameter("sno");
    	strStudentSname = request.getParameter("sname");
    				
    	// 添加数据
    	Connection con = null;    
    	Statement stmt = null;    
    				
            String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=CRUD;
            user=sa;password=123";//sa身份连接	
            try
    	{
    	      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    	      con = DriverManager.getConnection(url);  
    	      String strSql = "insert into Student values('" + strStudentSno + "','" + strStudentSname + "')";    
    	      stmt = con.createStatement();  
    	      stmt.execute(strSql);
    	}
    	catch (Exception e) 
    	{
    		response.setContentType("text/html");
    		response.setCharacterEncoding("utf-8");
    		PrintWriter out = response.getWriter();
    		out.println("<center><br><br>添加失败,学号:" + strStudentSno);
    		out.println("<br><br><a href='../StudentList.jsp'>返回</a></center>");
    		out.close();
    		return;
    	}
    						
    	// 跳转
    	response.sendRedirect("../StudentList.jsp");
    

      

    6、建立StudentAdd.html,添加如下代码:

    <center>
      <br><br>添加学生<br>
        <form name="f1" id="f1" action="servlet/AddStudent.do" method="post">
          <table border="0">
            <tr>
              <td>学号:</td>
              <td><input type="text" name="sno"></td>
            </tr>
            <tr>
              <td>姓名:</td>
              <td><input type="text" name="sname"></td>
            </tr> 
            <tr>
              <td colspan="2" align="center"><input type="submit" value=" 确定 " ></td>
            </tr>
          </table>
        </form>
    </center>
    

      

    7、按照步骤5添加servletEditStudent.java”和“DeleteStudent.java

    代码如下:

                    EditStudent.java
                    // 获取数据
    		request.setCharacterEncoding("utf-8");
    		String strStudentSno = "";
    		strStudentSno = request.getParameter("sno");
    		String strStudentSname = "";
    		strStudentSname = request.getParameter("sname");
    		
    		// 删除数据
    		Connection con = null;    
    		Statement stmt = null;    
    		ResultSet rs = null;  
    		
    		String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=CRUD;user=sa;password=123";//sa身份连接
    		
    		try
    		{
    			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    			con = DriverManager.getConnection(url);  
    			
    			String strSql = "update Student set sname = '"+strStudentSname+"' where sno= " + strStudentSno + " ";    
    			stmt = con.createStatement();  
    			stmt.execute(strSql);
    		}
    		catch (Exception e) 
    		{
    			response.setContentType("text/html");
    			response.setCharacterEncoding("utf-8");
    			PrintWriter out = response.getWriter();
    			out.println("编辑失败,学号:" + strStudentSno+"!");
    			out.close();
    			return;
    		}
    				
    		// 跳转
    		response.sendRedirect("../StudentList.jsp");
    
                   DeleteStudent.java:
                   // 获取数据
    		request.setCharacterEncoding("utf-8");
    		String strStudentSno = "";
    		strStudentSno = request.getParameter("sno");
    				
    		// 删除数据
    		Connection con = null;    
    		Statement stmt = null;    
    		ResultSet rs = null;  
    				
    		String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=CRUD;user=sa;password=123";//sa身份连接
    				
    		try
    		{
    			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    			con = DriverManager.getConnection(url);  
    					
    			String strSql = "delete from Student where sno='" + strStudentSno + "'";    
    			stmt = con.createStatement();  
    			stmt.execute(strSql);
    		}
    		catch (Exception e) 
    		{
    			response.setContentType("text/html");
    			response.setCharacterEncoding("utf-8");
    			PrintWriter out = response.getWriter();
    			out.println("删除失败,学号:" + strStudentSno+"!");
    			out.close();
    			return;
    		}
    						
    		// 跳转
    		response.sendRedirect("../StudentList.jsp");
    

      

    8、StudentEdit.jsp所对应的代码:

     <%@  import="java.sql.*" %>
      <%
    	Connection con = null;    
    	Statement stmt = null;    
    	ResultSet rs = null;  
    	
    	String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=CRUD;user=sa;password=123";//sa身份连接
    	
    	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    	con = DriverManager.getConnection(url);  
    	stmt = con.createStatement();  
    	
    	request.setCharacterEncoding("utf-8");
    	String strsno = "";
    	strsno = request.getParameter("sno");
    	String SQL = "SELECT * FROM Student where sno='" + strsno + "'";    
    	rs = stmt.executeQuery(SQL);    
    %>
    <center>
    
    <%if(rs.next()==true){ %>
    	
      	<br><br>编辑学生信息<br>
        <form name="f1" id="f1" action="servlet/EditStudent.do" method="post">
          <table border="0">
            <tr>
              <td>学号:</td>
              <td><input type="text" readonly="readonly" name="sno" value="<%=rs.getString("sno") %>"> 学号不允许编辑</td>
            </tr>
            <tr>
              <td>姓名:</td>
              <td><input type="text" name="sname" value="<%=rs.getString("sname") %>"></td>
            </tr> 
            <tr>
              <td colspan="2" align="center"><input type="submit" value=" 确定 " ></td>
            </tr>
          </table>
        </form>
    <%} else { %>
    <br><br>编辑学生信息<br><br>
    学号为<%=strsno %>的学生数据在数据库中不存在!<br><br>
    <a href="StudentList.jsp">返回</a>
    <%} %>
    </center>
    

      

    9、运行结果截图:

    查询界面:

    添加界面:学号:005 姓名:郎国杰

    添加成功界面:

    编辑界面:将“郎国杰”改写成“langguojie

    编辑成功:

    删除结果:

    10、总结:

    使用servlet对数据库的增删改查(CRUD)可以方便用户的操作,更具有规范性,可以避免代码泄露问题。这一部分是编辑网站以及开发网页的基础内容。

  • 相关阅读:
    67. Add Binary
    66. Plus One
    64. Minimum Path Sum
    63. Unique Paths II
    How to skip all the wizard pages and go directly to the installation process?
    Inno Setup打包之先卸载再安装
    How to change the header background color of a QTableView
    Openstack object list 一次最多有一万个 object
    Openstack 的 Log 在 /var/log/syslog 里 【Ubuntu】
    Git 分支
  • 原文地址:https://www.cnblogs.com/langgj/p/5331958.html
Copyright © 2011-2022 走看看