注册用户并使用struts2和hibernate保存
我想在这里注册一名新员工。问题是这些值没有插入到数据库中。虽然save()保存值的工作是否正确? 我在这里附上我的代码注册用户并使用struts2和hibernate保存,hibernate,struts2,Hibernate,Struts2,我想在这里注册一名新员工。问题是这些值没有插入到数据库中。虽然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.clas
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;
}
}
包net.admin.module.controller;
导入java.util.List;
导入org.hibernate.hibernateeexception;
导入org.hibernate.Query;
导入org.hibernate.Transaction;
导入org.hibernate.classic.Session;
导入net.admin.module.model.Employee;
导入net.admin.module.util.HibernateUtil;
公共类EmployeeManager扩展了HibernateUtil{
公共雇员添加(雇员){
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(员工);
session.getTransaction().commit();
返回员工;
}
公共雇员删除(内部id){
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Employee=(Employee)session.load(Employee.class,id);
如果(空!=员工){
删除(雇员);
}
session.getTransaction().commit();
返回员工;
}
公开名单(){
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List employee=null;
试一试{
employee=(List)session.createQuery(“来自employee”).List();
}捕获(休眠异常e){
e、 printStackTrace();
session.getTransaction().rollback();
}
session.getTransaction().commit();
返回员工;
}
}
这是我的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;
}
}
package net.admin.module.view;
导入java.util.List;
导入net.admin.module.controller.EmployeeManager;
导入net.admin.module.model.Employee;
导入com.opensymphony.xwork2.ActionSupport;
公共类EmployeeAction扩展了ActionSupport{
私有静态最终长serialVersionUID=9149826260758390091L;
私人雇员;
私人名单雇员名单;
私有int-id;
私人雇员经理雇员经理;
公共雇员行动{
employeeManager=新的employeeManager();
}
公共字符串execute(){
this.employeeList=employeeManager.list();
System.out.println(“执行调用”);
回归成功;
}
公共字符串add(){
System.out.println(getEmployee());
试一试{
add(getEmployee());
}捕获(例外e){
e、 printStackTrace();
}
this.employeeList=employeeManager.list();
回归成功;
}
公共字符串删除(){
delete(getId());
回归成功;
}
公共雇员getEmployee(){
返回员工;
}
公共列表getEmployeeList(){
返回员工名单;
}
公共作废集合雇员(雇员雇员){
this.employee=employee;
}
public void setEmployeeList(列表employeeList){
this.employeeList=employeeList;
}
公共int getId(){
返回id;
}
公共无效集合id(内部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页面中看到插入的值,但它不会被插入到数据库中。您可以在action类中看到值吗?您总是使用hibernate show_sql来查看发生了什么,启动了什么查询,以及employee对象的每个代码。您使用的是基于批注的映射还是基于xml的映射?数据库连接出现问题。在配置文件中做了一些更改,它就可以工作了!