0

in my java web app i have 3 Entities want to insert data to these Entities through a jsp client each entity will have a separate jsp page: my aim is to insert all three entity in on request using hibernate . how do i go about doing this. currently looking at spring MVC any help appreciated

here is my controller

    public class DriverControllerServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        float gear = Float.parseFloat( request.getParameter("gear"));
        float increaeRPMX = Float.parseFloat(request.getParameter("RPM"));
        float decreaseRPMX = Float.parseFloat(request.getParameter("DRPM"));
        float prefMaxSpeedX = Float.parseFloat(request.getParameter("PMxSpeed"));
        float prefMinSpeedX = Float.parseFloat(request.getParameter("PMnSpeed"));
        float decisionTimeX = Float.parseFloat(request.getParameter("DTime"));
        float maxAccelrationX = Float.parseFloat(request.getParameter("MaxAccn"));
        float emaxBreakingmailX = Float.parseFloat(request.getParameter("MaxBreaking"));
        float maxStraighSpeedX = Float.parseFloat(request.getParameter("MSSpeed"));
        float maxCornerSpeedX = Float.parseFloat(request.getParameter("MCSpeed"));

        HttpSession session = request.getSession(true);
        try {
            DriverPropDAO driverDAO = new DriverPropDAO();
            driverDAO.addDriverPropDetails(gear,increaeRPMX, decreaseRPMX, prefMaxSpeedX, prefMinSpeedX, decisionTimeX, maxAccelrationX, emaxBreakingmailX, maxStraighSpeedX, maxCornerSpeedX);
                       response.sendRedirect("Success");
        } catch (Exception e) {

            e.printStackTrace();
        }
    }

}

here is my DAO

public class DriverPropDAO {

    public void addDriverPropDetails(float gear,float incRPM,float decRPM,float pMaxSpeed,float pMinSpeed,
            float dTime,float mAccelration,float mBreakingmail,float mStraighSpeed,float mCornerSpeed)  {
        try{

            // 1. configuring hibernate
            Configuration configuration = new Configuration().configure();

            // 2. create sessionfactory
            SessionFactory sessionFactory = configuration.buildSessionFactory();

            // 3. Get Session object
            Session session = sessionFactory.openSession();
         // 4. Starting Transaction
            Transaction transaction = session.beginTransaction();
            DriverProp driver = new DriverProp();
            driver.setGear(gear);
            driver.setRPM(incRPM);
            driver.setDecreaseRPM(decRPM);
            driver.setEmaxBreakingmail(mBreakingmail);
            driver.setMaxAccelration(mAccelration);
            driver.setMaxCornerSpeed(mCornerSpeed);
            driver.setMaxStraighSpeed(mStraighSpeed);
            driver.setPrefMaxSpeed(pMaxSpeed);
            driver.setPrefMinSpeed(pMinSpeed);
            driver.setDecisionTime(dTime); 

            session.save(driver);
            transaction.commit();
            System.out.println("\n\n Details Added \n");

        }
        catch(HibernateException e){
            System.out.println(e.getMessage());
            System.out.println("error");
        }
    }

}
Sudani
  • 73
  • 8

1 Answers1

0

how do i go about doing this. currently looking at spring MVC

In spring mvc you got a @Controller to handle request and response, and @ModelAttribute/command object to bind data from JSP page. and there is a @RequestMapping annotation for defining which url request to handle,

Don't use new operator to create a new instance of service and DAO classes, add to spring container as a singleton bean, and ask when required using @Autowired, @Inject OR @Resource

like:

@Controller
public class DriverController {

   @Autowired private DriverPropDAO driverDAO;

   @RequestMapping(value="/driver", method=RequestMethod.GET)
   public String getDriverForm(Model model){
       model.addAttribute("driver", new DriverProp());
   }

   @RequestMapping(value="/driver", method=RequestMethod.POST)
   public String processDriverForm(Model model, @ModelAttribute("driver")DriverProp driverProp, BindingResult result){

       //Here, validate driverProp intance, if fails return back

       //Here, save it.
       driverDAO.save(driverProp);

       return "redirect:/driver";
   }
}

and in JSP page use spring form tag like:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<form:form method="post" modelAttribute="driver">
    <form:input path="gear"/>
     .
     .
     .
</form:form>

See Also:

Community
  • 1
  • 1
Abhishek Nayak
  • 3,732
  • 3
  • 33
  • 64