Null values are insering in data base using Struts2 and hibernate

此生再无相见时 提交于 2019-12-06 11:09:11

问题


I am using struts2 and Hibernate integration application to insert values in database. But after inserting values from form filed only null value is saving in database; this is my form jsp file

employee.jsp

<%@ taglib  uri ="/struts-tags" prefix="s"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<s:form action="employee" method="post">
<s:textfield name ="name" label="ENTER your name"/>
<s:textfield name="address" label="Enter Address"/>
<s:submit label="submit">submit</s:submit>

</s:form>
</body>
</html>

entity class Empmodel.java

package model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;


import javax.persistence.Id;
@Entity

public class Empmodel {
@Id @GeneratedValue
private int serialno;
private String name;
private String address;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}   
}

Connectionfactory.java

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class ConnectionFactory {


private static  SessionFactory  sessionfactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {


    Configuration config =null;
     SessionFactory sf  =null;
    try{
        config= new Configuration().configure();
        ServiceRegistry servicereg = (ServiceRegistry) new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();

                sf= config.buildSessionFactory(servicereg); 


    }
    catch(Throwable e){
        System.out.println("Initial session factory creation failed"+ e);
        throw new ExceptionInInitializerError(e);
    }
    return sf;
}
 public static SessionFactory getSessionFactory(){
    return sessionfactory;
    }}

Empdao is

import model.Empmodel;
import org.hibernate.Session;

public class Empdao {

public Empmodel add(){
    Empmodel model = new Empmodel();
    Session session=ConnectionFactory.getSessionFactory().getCurrentSession();

    session.beginTransaction();

    session.save(model);
    session.getTransaction().commit();
    return model;
}
}

Action class is

import model.Empmodel;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import dao.Empdao;

public class Empaction extends ActionSupport implements ModelDriven<Empmodel> {
    private static final long serialVersionUID = 1L;
    private Empmodel model;


        public String execute() throws Exception{
            Empdao empdao = new Empdao();
            Empmodel queryresult =  empdao.add();

            if(queryresult != null) {
                return SUCCESS; 
            }
            else
                return ERROR;   
        }
        @Override
        public Empmodel getModel() {
            // TODO Auto-generated method stub
            return model;
        }
    }

回答1:


if you want to get something first you need to put something. This rule works everywhere. In your code you need to put the model object to DAO. Then DAO will save it to the db using the values populated in the model via the interceptor. For example

Empmodel queryresult = empdao.add(model); 

For this to work you need to change the method signature to add a parameter for model.

The thing seems trivial but you need to remove the statement that recreate the model in the method implementation, it is not working fine. Also make sure that the model is not empty before you start transaction.

The save method in DAO should check if the new object is created that has null value for id.

if (model.getId() == null)
  session.save(model);
else
  session.update(model);
}

How to implement a ModelDriven with integration hibernate example

Struts2 hibernate integration via s2hibernate plugin



来源:https://stackoverflow.com/questions/16870454/null-values-are-insering-in-data-base-using-struts2-and-hibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!