Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MySQLIntegrityConstraintViolationException:Column';名字';不能为空_Java_Mysql_Jsp_Http_Jakarta Ee - Fatal编程技术网

Java MySQLIntegrityConstraintViolationException:Column';名字';不能为空

Java MySQLIntegrityConstraintViolationException:Column';名字';不能为空,java,mysql,jsp,http,jakarta-ee,Java,Mysql,Jsp,Http,Jakarta Ee,我四处寻找,但找不到任何帮助 我试图创建一个用户,但有两个字段一直为空(firstname和department) 图形用户界面(html): Employees.java文件: public class Employees { private int id; private String firstname; private String lastname; private String gender; private String email;

我四处寻找,但找不到任何帮助

我试图创建一个用户,但有两个字段一直为空(firstname和department)

图形用户界面(html):

Employees.java文件:

public class Employees {
    private int id;
    private String firstname;
    private String lastname;
    private String gender;
    private String email;
    private String role;
    private String department;
    private String image;
    private String username;
    private String password;


    public Employees(int id, String firstname, String lastname, String gender, String email, String role, String department, String image, String username, String password) {
        this.id = id;
        this.firstname = firstname;
        this.lastname = lastname;
        this.gender = gender;
        this.email = email;
        this.role = role;
        this.department = department;
        this.image = image;
        this.username = username;
        this.password = password;

        System.out.println("this.firstname: "+firstname);
        System.out.println("this.department: "+department);

        System.out.println("getFirstname: "+getFirstname());
        System.out.println("getDepartment: "+getDepartment());
    }


    public int getId() {
        return id;
    }


    public void setId(int id) {
        this.id = id;
    }


    public String getFirstname() {
        return firstname;
    }


    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }


    public String getLastname() {
        return lastname;
    }


    public void setLastname(String lastname) {
        this.lastname = lastname;
    }


    public String getGender() {
        return gender;
    }


    public void setGender(String gender) {
        this.gender = gender;
    }


    public String getEmail() {
        return email;
    }


    public void setEmail(String email) {
        this.email = email;
    }


    public String getRole() {
        return role;
    }


    public void setRole(String role) {
        this.role = role;
    }


    public String getDepartment() {
        return department;
    }


    public void setDepartment(String department) {
        this.department = department;
    }


    public String getImage() {
        return image;
    }


    public void setImage(String image) {
        this.image = image;
    }


    public String getUsername() {
        return username;
    }


    public void setUsername(String username) {
        this.username = username;
    }


    public String getPassword() {
        return password;
    }


    public void setPassword(String password) {
        this.password = password;
    }


}

我没有尝试过这段代码,这听起来可能有点幼稚,但您是否尝试过更改名称?你检查过空格了吗?

因为在getter中,你是这样做的

退货部门
将其更改为
this.department
firstname

编辑:
它在您的情况下起作用,因为我只是想使用
this
强制执行值,但我需要理解为什么它以前不起作用。

表列firstname不可为null。我知道它不可为null,但是我在里面输入了一些东西,所以它不应该是。显示'new Employees'的代码一个参数我现在已经粘贴了你可以看到日志上的值了吗?我看不到任何空格,但是为什么更改名称会有什么不同呢?我不认为这是问题所在,因为在getter的方法体中,您正在返回object属性。@drgPP同意您所说的,我只是希望他强制执行它,让我们看看,因为一切看起来都很好,这是我唯一能做的区别see@DanyalSandeelo这有点奇怪,这是因为OP说在构建Employees对象之前,
firstname
department
的值为null,但在从输入字段提取值的阶段。
<%@page import="model.EmployeeModel"%>
<%@page import="model.Employees"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
        <%
        //We get the fulfilled parameters
        String firstname = request.getParameter("firstname");
        String lastname = request.getParameter("lastname");
        String gender = request.getParameter("gender");
        String email = request.getParameter("email");
        String role = request.getParameter("role");
        String department = request.getParameter("department");
        String image = request.getParameter("image");
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        System.out.println("Firstname from EmployeesAddManager.jsp: "+firstname);
        System.out.println("Lastname from EmployeesAddManager.jsp: "+lastname);
        System.out.println("Department from EmployeesAddManager.jsp: "+department);

        //We instantiate an employee and set the parameters
        Employees emp = new Employees(0, firstname, lastname, gender, email, role, department, image, username, password);

        //We call for the method for creating a new employee, and send the new instantiated employee 
        EmployeeModel empModel = new EmployeeModel();
        empModel.newEmployee(emp);

         /*This method is used to redirect client request to some other location
            for further processing ,the new location is available on different server
            or different context.our web container handle this and transfer the request
            using  browser ,and this request is visible in browser as a new request.
            Some time this is also called as client side redirect.
        */
        response.sendRedirect("/Employees_servlet");
        %>
    </body>
</html>
public void newEmployee(Employees emp) throws SQLException{

                    try {
                        PreparedStatement ps = DbModel2.getPreparedStatement("INSERT INTO employee_table (Id_employee, Firstname, Lastname, Gender, Email, RoleId_Fk, DepartmentId_Fk, Image) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
                        ps.setInt(1, emp.getId());
                        ps.setString(2, emp.getFirstname());
                        ps.setString(3, emp.getLastname());
                        ps.setString(4, emp.getGender());
                        ps.setString(5, emp.getEmail());
                        ps.setString(6, emp.getRole());
                        ps.setString(7, emp.getDepartment());
                        ps.setString(8, emp.getImage());

                        System.out.println("Id: "+emp.getId());
                        System.out.println("Firstname: "+emp.getFirstname()); 
                        System.out.println("Lastname: "+ emp.getLastname());
                        System.out.println("Gender: "+emp.getGender());
                        System.out.println("Email: "+emp.getEmail());
                        System.out.println("Role: "+emp.getRole());
                        System.out.println("Department: "+emp.getDepartment());
                        System.out.println("Image: "+emp.getImage());
                        ps.executeUpdate();
                        System.out.println("EXECUTED");
                    } catch (ClassNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }


        }
public class Employees {
    private int id;
    private String firstname;
    private String lastname;
    private String gender;
    private String email;
    private String role;
    private String department;
    private String image;
    private String username;
    private String password;


    public Employees(int id, String firstname, String lastname, String gender, String email, String role, String department, String image, String username, String password) {
        this.id = id;
        this.firstname = firstname;
        this.lastname = lastname;
        this.gender = gender;
        this.email = email;
        this.role = role;
        this.department = department;
        this.image = image;
        this.username = username;
        this.password = password;

        System.out.println("this.firstname: "+firstname);
        System.out.println("this.department: "+department);

        System.out.println("getFirstname: "+getFirstname());
        System.out.println("getDepartment: "+getDepartment());
    }


    public int getId() {
        return id;
    }


    public void setId(int id) {
        this.id = id;
    }


    public String getFirstname() {
        return firstname;
    }


    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }


    public String getLastname() {
        return lastname;
    }


    public void setLastname(String lastname) {
        this.lastname = lastname;
    }


    public String getGender() {
        return gender;
    }


    public void setGender(String gender) {
        this.gender = gender;
    }


    public String getEmail() {
        return email;
    }


    public void setEmail(String email) {
        this.email = email;
    }


    public String getRole() {
        return role;
    }


    public void setRole(String role) {
        this.role = role;
    }


    public String getDepartment() {
        return department;
    }


    public void setDepartment(String department) {
        this.department = department;
    }


    public String getImage() {
        return image;
    }


    public void setImage(String image) {
        this.image = image;
    }


    public String getUsername() {
        return username;
    }


    public void setUsername(String username) {
        this.username = username;
    }


    public String getPassword() {
        return password;
    }


    public void setPassword(String password) {
        this.password = password;
    }


}