通过servlet来实现对Mysql进行连接、插入、修改、删除操作

来源:互联网 发布:淘宝开店认证 上半身 编辑:程序博客网 时间:2024/05/18 00:46

通过servlet来实现对Mysql进行连接、插入、修改、删除操作

来自:http://blog.sina.com.cn/s/blog_4bea2fb10100f3w3.html


package Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import src.Logg;
import src.MysData;

 

public class UserServlet extends HttpServlet {
   Logg log=new Logg();
   MysData usr=new MysData();

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException, SQLException{
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
   //java.sql.Connection conn=log.ConnectMysql();不能在这里这样写。具体在操作函数里连接,见后面。
    usr.setName(request.getParameter("username"));
    usr.setPassword(request.getParameter("password"));
    usr.setEmail(request.getParameter("email"));
    String de=request.getParameter("eee");//从不同的form过来的隐藏属性字段“eee”,通过对其值的判断就知道说哪个form,然后执行不同的操作
    if(de.equals("qq")){
            log.InsertSql(usr);
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet NewServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet NewServlet at " + request.getContextPath () + "</h1>");
            out.println("wewewe");
            out.println("<br>");
            out.println(request.getAttributeNames());
            out.println("注册成功!");
            out.println(de);
            out.println("</body>");
            out.println("</html>");
    }else if(de.equals("cha")){
        String password= request.getParameter("password");
        //String email= request.getParameter("email");
        //String userid=request.getParameter("userid");
        //下面的5是随便设置的值,很明显,这个值应该是当然登陆的用户的值,那么这个值如何获得呢?明天研究。//后来研究了下,通过session来弄的。后面有用到session,但是只是简单弄了下。
        String upsql="update user set password="+password+" where userid=5";

        out.print(upsql);
       
        log.UpdateSql(upsql);
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet NewServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet NewServlet at " + request.getContextPath () + "</h1>");
            out.println("wewewe");
            out.println("<br>");
            out.println(request.getAttributeNames());
            out.println("修改成功!");
            out.println(de);
            out.println("</body>");
            out.println("</html>");

    }else if(de.equals("logg")){
                   HttpSession session=request.getSession(true);
                    Logg logg=new Logg();

                    String username=request.getParameter("username");
                    String password=request.getParameter("password");

                    String sql="select * from user where username="+username+" and password="+password;
                   
                    ResultSet rs=logg.SelectSql(sql);

                   

下面这段代码之所有有问题,是因为不是根据主键来获取的。导致获取的数据可能很多条相同的。回头再研究下主键。
                       session.setAttribute("username", username);

            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet NewServlet</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet NewServlet at " + request.getContextPath () + "</h1>");
            out.println("登录成功!");
            out.println(de);
            out.println("<br>");
            out.println(session.getAttribute("username")+"");
            out.println(sql);
        //    out.println(username2);
            out.println("<br>");
            out.println(request.getAttributeNames());
            out.println();
            out.println("</body>");
            out.println("</html>");
            out.flush();
    }
        } finally {
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet 方法。单击左侧的 + 号以编辑代码。">
   
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(UserServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.print("weeeeeeeeeeeeeeeeee");
       
    }

   
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(UserServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

   
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}

 

***********************************************************************************

//把上次的那个logg类里的查询操作的返回值改了下。
         public ResultSet SelectSql(String sql){
             try{
                conn=this.ConnectMysql();//见上面。在操作之前链接。
                 Statement statement=conn.createStatement();
                 rs=statement.executeQuery(sql);
                 while(rs.next()){
                     name=rs.getString("username");
                     System.out.println(rs.getString("userid")+name+rs.getString("email"));
                  }
             }catch(Exception e){
                 e.printStackTrace();
             }
            return rs;
         }

 

******************************************************************************************

 


 

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page555</title>
    </head>
    <body>
        <h1>Hello World!22222</h1>
        <form method="POST" action="/ServLogg/UserServlet">

//下面这个“eee”就是上面提到的隐藏域。也可以写到 <form method="POST" action="/ServLogg/UserServlet?eee=qq">在servlet后面加问号,然后再设定隐藏域参数及其值,和下面使用的hidden隐藏域方法一样的效果,但下面的方法可以设置多个隐藏域的值


             <input type="hidden" name="eee" value="qq">
            用户名:<input type="text" name="username"><br>
            密码:<input type="text" name="password"><br>
            邮箱<input type="text" name="email"><br><br>

            <input type="submit" name="submit" value="确定">
            <input type="reset" name="reset" value="重置">

        </form>
    </body>
</html>

 

**************************************************

原创粉丝点击