Java MySQLIntegrityConstraintViolationException:Column';名字';不能为空
我四处寻找,但找不到任何帮助 我试图创建一个用户,但有两个字段一直为空(firstname和department) 图形用户界面(html): Employees.java文件: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;
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;
}
}