更新/编辑从数据库 - servlet输入的数据

时间:2013-06-08 09:35:55

标签: servlets jdbc database-connectivity

我准备了一个用于插入,查看和删除数据的表单 现在我想添加编辑该数据的选项,但要么是我按照错误的方式去做,要么我不知道该怎么做。

那么任何人都可以帮我继续编辑输入的数据吗?我应该参考旧的html页面来编辑或新的页面或.. ?? 我知道我没有遵循MVC结构,但我想在单页中完成整个编码,等待帮助.. 谢谢。

这些是我的代码。

Datastore.html

<html>
    <head>
        <title>Data insertion form</title>
    </head>

    <body>

    <form method= "get" action="/datainsert/DataInsertTable">

    <h1><center>Enter the required information</center></h1>

    <table>
        <tr>
            <td>Name</td>
            <td> :- </td>
            <td><input type="text" name="name"></input></td>
        </tr>

        <tr>
            <td>Roll Number</td>
            <td> :- </td>
            <td><input type="text" name="roll"></input></td>
        </tr>

        <tr>
            <td>Class </td>
            <td> :- </td>
            <td><input type="text" name="clas"></input></td>
        </tr>

        <tr>
            <td>Mobile Number </td>
            <td> :- </td>
            <td><input type="text" name="mono"></input></td>
        </tr>

        <tr>
            <td></td>
            <td><input type="submit" value="Submit" width="16" onClick=alert("data stored.");></input></td>
        </tr>

    </table>


    </form>

    </body>
</html>

DataInsertTable.java

import java.io.*;
import java.sql.*;

import javax.servlet.*;
import javax.servlet.http.*;


public class DataInsertTable extends HttpServlet    {
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws IOException, ServletException    {

        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        PrintWriter pwinsert = res.getWriter();


        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        Statement st = null;


        out.println("<html>");
        out.println("<head>");
            out.println("<title>User Data</title>");

            out.println("<script language = JavaScript>");
            out.println("<function f1() {>");
            out.println("<{>");
            out.println("<function f1() {>");
            out.println("<alert('Select data');>");
            out.println("<}>");
            out.println("</script>");

            out.println("</head>");

        out.println("</head>");

        out.println("<body>");

        out.println("<center><u><h1>User Data</h1></u>");

        out.println("<form name='form' >");

            out.println("<table border="+2+ "> ");
                out.println("<tr>");
                    out.println("<td> Select </td>");
                    out.println("<td> Name </td>");
                    out.println("<td> Roll No. </td>");
                    out.println("<td> Class </td>");
                    out.println("<td> Mobile Number </td>");
                out.println("</tr>");


                String nm = req.getParameter("name");
                String roll = req.getParameter("roll");
                String clas = req.getParameter("clas");
                String mono = req.getParameter("mono");


                try {
                    Class.forName("oracle.jdbc.driver.OracleDriver");
                }
                catch(ClassNotFoundException ex)    {
                    System.out.println("driver not loaded");
                    System.exit(0);
                }


                String URL = "jdbc:oracle:thin:@192.168.106.87:1521:ora11g";
                String Username = "pratik";
                String Password = "pratik";






//Insert                
                try {
                    con = DriverManager.getConnection(URL,Username,Password);

                    if(req.getParameter("choise")==null)    {
                        ps = con.prepareStatement("INSERT INTO student (name, rollno, class, mobileno) VALUES (?, ?, ?, ? )");
                        ps.setString(1,nm); 
                        ps.setString(2,roll);
                        ps.setString(3,clas);
                        ps.setString(4,mono);


                        int i = ps.executeUpdate();
                        pwinsert.println(i);

                        if(i!=0)    {
                            pwinsert.println("data has been stored");
                        }
                        else    {
                            pwinsert.println("data could not be stored");
                        }
                    }
                }

                catch(Exception e)  {
                    pwinsert.println(e.getMessage());
                }


                String idr=null;

//Delete
//cond. nt neeeded (null)

                if(req.getParameter("choise")!=null)    {
                    nm = req.getParameter("choise");

                    idr = "DELETE from student WHERE name ='"+nm+"'";

                    try {
                        st=con.createStatement();
                        rs = st.executeQuery(idr);
                    }
                    catch (Exception e) {
                        e.getMessage();
                        System.out.println("Error " +e);
                    }

                    System.out.println("Data se deleted..."); 



                }

//Update

/*              String updt = "UPDATE student SET name ='"+nm +"',rollno='" + roll + "', class='"+ clas +"', mobileno='"+mono+"' WHERE name ='"+nm +"' ";

                PreparedStatement ps1 = null;  
                try {
                    ps1=con.prepareStatement(updt);
                } catch (SQLException e2) {
                    e2.printStackTrace();
                }  

                int i = 0;
                try {
                    i = ps1.executeUpdate();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }  
                if(i==1)  
                    out.println("success");  
                else  
                    out.println("failed"); 

*/

// edit             
                if(req.getParameter("choise")!=null)    {
                    nm = req.getParameter("choise");

                    idr = "UPDATE student SET name = ?, rollno = ?, class = ?, mobileno = ? WHERE name = ?";

                    try {
                        st=con.createStatement();
                        int rs1 = st.executeUpdate(idr);
                    }
                    catch (Exception e) {
                        e.getMessage();
                        System.out.println("Error " +e);
                    }

                    System.out.println("Data Edited..."); 

                }
                else    {

                    System.out.println("Select row..");
                }


/*              String upd = "UPDATE student SET name = ?, rollno = ?, class = ?, mobileno = ? WHERE name = ?"; 

                PreparedStatement prest = null;
                try {
                    prest = con.prepareStatement(upd);
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                try {
                    prest.setString(1,"nm");
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                try {
                    prest.setString(2,"roll");
                } catch (SQLException e2) {
                    // TODO Auto-generated catch block
                    e2.printStackTrace();
                }
                try {
                    prest.setString(3,"clas");
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                try {
                    prest.setString(4,"mono");
                } catch (SQLException e2) {
                    // TODO Auto-generated catch block
                    e2.printStackTrace();
                }
                try {
                    prest.executeUpdate();
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                System.out.println("Updating Successfully!");

*/              

                idr = "SELECT * FROM student WHERE name IS NOT NULL";


                try {
                    st=con.createStatement();
                    rs = st.executeQuery(idr);
                }
                catch (Exception e) {
                    e.getMessage();
                    System.out.println("Error " +e);
                }

                try {
                    while (rs.next())   {
                        out.println("<tr>");
                        out.println("<td>" + "<input type=\"radio\" name=\"choise\" value=\"" + rs.getString(1) + "\" /> </br>" + "</td>");
                        out.println("<td>" + rs.getString(1) + "</td>" + "\t <td>" + rs.getInt(2) + "</td>" + "\t <td>" + rs.getString(3) + "</td>" + "\t <td>" + rs.getString(4));
                        out.println("</tr>");
                    }

                    out.println("<tr>");
                    out.println("<td> </td>");
{                   
                    out.println("<td>" + "<input type=\"submit\" value=\"Delete Data\" />" + "</td>");

                    if(req.getParameter("choise") != null)  {

                        out.println("submitted.");
                    }

                    else    {
                        out.println("<script>alert('Data stored into database')</script>");
                    }
            }


// To Edit 
                    out.println("<td>" + "<input type=\"button\" value=\"Edit \" onClick = f1() />" + "</td>");


                    out.println("<td> </td>");
                    out.println("<td> </td>");
                    out.println("</tr>");
                }

                catch (Exception e) {
                    e.getMessage();
                    System.out.println("Error" +e);
                }

                try {
                    rs.close();
                }
                catch (Exception e) {
                    e.getMessage();
                    System.out.println("Error" +e);
                }

                try {
                    st.close();
                }
                catch (Exception e) {
                    e.getMessage();
                    System.out.println("Error" +e);
                }

                out.println("</table>");
                out.println("</form>");
                out.println("</center>");
                out.println("</body>");
                out.println("</html>");
                out.close();
            }
    }

1 个答案:

答案 0 :(得分:0)

首先在页面HTML页面上创建一个隐藏字段,以标识要执行的操作 最初它的值应为空白,并且基于click是否插入更新或删除为所有可用操作分配一些唯一值。并且从您的servlet获取该字段为req.getParameter("<HIDDEN FIELD NAME>")并基于此将您的代码放在相应的if和else中if block以便只运行该代码。 希望这会有所帮助