ここで新しい従業員を登録しようとしています。問題は、値がデータベースに挿入されないことです。save() は値を正しく保存する作業を行いますが? ここにコードを添付しています。
package net.admin.module.controller;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;
import net.admin.module.model.Employee;
import net.admin.module.util.HibernateUtil;
public class EmployeeManager extends HibernateUtil {
public Employee add(Employee employee) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(employee);
session.getTransaction().commit();
return employee;
}
public Employee delete(int id) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Employee employee = (Employee) session.load(Employee.class, id);
if(null != employee) {
session.delete(employee);
}
session.getTransaction().commit();
return employee;
}
public List<Employee> list() {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List<Employee> employee = null;
try {
employee = (List<Employee>)session.createQuery("from Employee").list();
} catch (HibernateException e) {
e.printStackTrace();
session.getTransaction().rollback();
}
session.getTransaction().commit();
return employee;
}
}
これは私の EmployeeManager.java クラスです。それは私のコントローラーです。
package net.admin.module.view;
import java.util.List;
import net.admin.module.controller.EmployeeManager;
import net.admin.module.model.Employee;
import com.opensymphony.xwork2.ActionSupport;
public class EmployeeAction extends ActionSupport {
private static final long serialVersionUID = 9149826260758390091L;
private Employee employee;
private List<Employee> employeeList;
private int id;
private EmployeeManager employeeManager;
public EmployeeAction() {
employeeManager = new EmployeeManager();
}
public String execute() {
this.employeeList = employeeManager.list();
System.out.println("execute called");
return SUCCESS;
}
public String add() {
System.out.println(getEmployee());
try {
employeeManager.add(getEmployee());
} catch (Exception e) {
e.printStackTrace();
}
this.employeeList = employeeManager.list();
return SUCCESS;
}
public String delete() {
employeeManager.delete(getId());
return SUCCESS;
}
public Employee getEmployee() {
return employee;
}
public List<Employee> getEmployeeList() {
return employeeList;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
public void setEmployeeList(List<Employee> employeeList) {
this.employeeList = employeeList;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
これは私の EmployeeAction.java クラスです。これが私のアクションクラスです。
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Employee Manager</title>
</head>
<style>
body
{
background:Teal;
}
</style>
<body>
<h1>Employee Manager</h1>
<s:actionerror/>
<s:form action="add" method="post">
<s:textfield name="employee.id" label="Id" />
<s:textfield name="employee.firstName" label="Firstname"/>
<s:textfield name="employee.lastName" label="Lastname"/>
<s:textfield name="employee.email" label="Email"/>
<s:textfield name="employee.phoneNo" label="Phone No."/>
<s:textfield name="employee.presentAddress" label="Present Address"/>
<s:textfield name="employee.permanentAddress" label="Permanent Address" />
<s:textfield name="employee.passportNo" label="Passport No." />
<s:textfield name="employee.panCardNo" label="Pan Card No." />
<s:textfield name="employee.designation" label="Designation"/>
<s:textfield name="employee.age" label="Age" />
<s:textfield name="employee.gender" label="Gender" />
<s:textfield name="employee.dob" label="Dob" />
<s:textfield name="employee.status" label="Status" />
<s:textfield name="employee.createdOn" label="Created On" />
<s:textfield name="employee.updatedOn" label="Updated On" />
<s:textfield name="employee.role" label="Role" />
<s:textfield name="employee.joiningDate" label="Joining Date" />
<s:submit value="Add Employee" align="center"/>
</s:form>
<h2>Employee</h2>
<table>
<tr>
<th>Id</th>
<th>FirstaName</th>
<th>LastName</th>
<th>Email</th>
<th>Phone No.</th>
<th>Present Address</th>
<th>Permanent Address</th>
<th>Passport No.</th>
<th>Pan Card No.</th>
<th>Designation</th>
<th>Age</th>
<th>Gender</th>
<th>Dob</th>
<th>Status</th>
<th>Created On</th>
<th>Updated On</th>
<th>Role<th>
<th>Joining Date</th>
<th>Delete</th>
</tr>
<s:iterator value="employeeList" var="employee">
<tr>
<td><s:property value="id"/>
<s:property value="firstName"/> </td>
<td><s:property value="lastName"/> </td>
<td><s:property value="emailId"/></td>
<td><s:property value="phoneNo"/></td>
<td><s:property value="presentAddress"/></td>
<td><s:property value="permanentAddress"/></td>
<td><s:property value="passportNo"/></td>
<td><s:property value="panCardNo"/></td>
<td><s:property value="designation"/></td>
<td><s:property value="age"/></td>
<td><s:property value="gender"/></td>
<td><s:property value="dob"/></td>
<td><s:property value="status"/></td>
<td><s:property value="createdOn"/></td>
<td><s:property value="updatedOn"/></td>
<td><s:property value="role"/></td>
<td><s:property value="joiningDate"/></td>
<td><a href="delete?id=<s:property value="id"/>">delete</a></td>
</tr>
</s:iterator>
</table>
</body>
</html>
これは私の jsp-index.jsp です。ここに転送します。挿入された値は jsp ページに表示されますが、データベースには挿入されません。