繁体   English   中英

使用setter getter类通过MVC模型将数据插入数据库

[英]insert data into database through MVC model using setter getter class

我想以一种有组织的方式将数据插入数据库,我有一个jsp页面,该页面从用户那里获取输入id name salary ,并发送给数据库表employee。 该表具有三列eidenameesalary

在我的编码部分中,我有三个包: com.mvc.javaclassbeanscom.mvc.javaclassescom.mvc.servlets

myservletcom.mvc.servlets包从jsp页面和过程需要的参数(EID,ENAME,esalary)来设置的参数来创建的一个目的employee类和插入eid ename esalary使用值new insertclass().insertfunction(obj);

我的代码未显示任何错误,但未插入值。 我没有遇到问题,因为我将代码分成了不同的包以使其可以在mvc中工作。

我的com.mvc.javaclasses包装包括

  • dbconnector
  • 插入类

com.mvc.javaclassbeans包含

  • 员工阶层

com.mvc.servlets由

  • myservlet类

下面是我的代码:

insert.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form action="myservlet" method="post">
            ID:<input type="text"  name="eid">
            NAME:<input type="text"  name="ename">
            SALARY:<input type="text" name="esalary">
        <button type="submit" name="submit" value="submit" >Sign in</button>
         </form>
    </body>
</html>

mysevlet

 package com.mvc.servlets;
    import com.mvc.javaclassbeans.employee;
    import com.mvc.javaclasses.dbconnector;
    import com.mvc.javaclasses.insertclass;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    @WebServlet(name = "myservlet", urlPatterns = {"/myservlet"})
    public class myservlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            employee obj = new employee();
            obj.setId(request.getParameter("eid"));
            obj.setName(request.getParameter("ename"));
            obj.setSalary(request.getParameter("esalary"));

           try {
              new insertclass().insertfunction(obj);
           } catch (ClassNotFoundException ex) {
             Logger.getLogger(myservlet.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
                Logger.getLogger(myservlet.class.getName()).log(Level.SEVERE, null, ex);
            }

            out.print("sucess");
        }
        catch (Exception ex) {
                Logger.getLogger(myservlet.class.getName()).log(Level.SEVERE, null, ex);
            }

    }

    }

请帮助我找到我所缺少的问题。

这段代码对我有用。 为了测试我的配置是:

主代码(只需将此代码放在Test类中):

package sarah;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

class dbconnector {

    //String user = "system";
    //String pass = "system";
    //String driver = "oracle.jdbc.OracleDriver";
    //String dbURL = "jdbc:oracle:thin:@localhost:1521:XE";
    ResultSet rs;
    Connection connection = null;
    Statement stmt = null;

    public Connection Open() {

        System.out.println("-------- MySQL JDBC Connection Testing ------------");

        try {
            Class.forName("org.postgresql.Driver");
            connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/test", "postgres", "root");
            System.out.println("Succeed!");
            // return connection;

        } catch (Exception e) {

            System.out.println("you have stucked with error!!!!!!");

        }

        System.out.println("MySQL JDBC Driver Registered!");

        if (connection != null) {
            System.out.println("You made it, take control your database now!");
        } else {
            System.out.println("Failed to make connection!");
        }

        return connection;
    }

    public void db_Close(Connection con) throws SQLException {
        con.close();
        return;
    }
}

class employee {

    String eid;
    String ename;
    String esalary;

    // public employee(String eid, String ename, String esalary) {
    //  this.eid = eid;
    // this.ename = ename;
    // this.esalary = esalary;
    //}


    public String getId() {
        return eid;
    }

    public void setId(String eid) {
        this.eid = eid;
    }

    public String getName() {
        return ename;
    }

    public void setName(String ename) {
        this.ename = ename;
    }

    public String getSalary() {
        return esalary;
    }

    public void setSalary(String esalary) {
        this.esalary = esalary;
    }

}

class insertclass {

    // Connection connection = null;
    PreparedStatement ps;
    public String query;

    public boolean insertfunction(employee ob) throws ClassNotFoundException, SQLException {
        try {
            dbconnector dbc = new dbconnector();
            Connection connection = dbc.Open();
            query = "insert into employee (eid,ename,esalary) values(?,?,?)";
            java.sql.PreparedStatement ps = connection.prepareStatement(query);
            ps.setString(1, ob.getId());
            ps.setString(2, ob.getName());
            ps.setString(3, ob.getSalary());

            ps.executeUpdate();
            return true;
        } catch (Exception ex) {
            ex.printStackTrace();
            return false;
        }

    }
}

@WebServlet(name = "Test", urlPatterns = {"/Test"})
public class Test extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            employee obj = new employee();
            obj.setId(request.getParameter("eid"));
            obj.setName(request.getParameter("ename"));
            obj.setSalary(request.getParameter("esalary"));

            try {
                new insertclass().insertfunction(obj);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            }

            out.print("sucess");
        } catch (Exception ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
}

表定义:

CREATE TABLE employee
(
  eid text,
  ename text,
  esalary text
)
WITH (
  OIDS=FALSE
);
ALTER TABLE employee
  OWNER TO postgres;

test.jsp文件:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>JSP Page</title>
</head>
<body>
<form action="Test" method="post">
  ID:<input type="text"  name="eid">
  NAME:<input type="text"  name="ename">
  SALARY:<input type="text" name="esalary">
  <button type="submit" name="submit" value="submit" >Sign in</button>
</form>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM