EmployeeBean.java
- package com.dineshonjava.bean;
-
- /**
- * @author Dinesh Rajput
- *
- */
- public class EmployeeBean {
- private Integer id;
- private String name;
- private Integer age;
- private Long salary;
- private String address;
-
- public Long getSalary() {
- return salary;
- }
- public void setSalary(Long salary) {
- this.salary = salary;
- }
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
- }
Employee.java
- package com.dineshonjava.model;
-
- import java.io.Serializable;
-
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- import javax.persistence.Table;
-
- /**
- * @author Dinesh Rajput
- *
- */
- @Entity
- @Table(name="Employee")
- public class Employee implements Serializable{
-
- private static final long serialVersionUID = -723583058586873479L;
-
- @Id
- @GeneratedValue(strategy=GenerationType.AUTO)
- @Column(name = "empid")
- private Integer empId;
-
- @Column(name="empname")
- private String empName;
-
- @Column(name="empaddress")
- private String empAddress;
-
- @Column(name="salary")
- private Long salary;
-
- @Column(name="empAge")
- private Integer empAge;
-
- public Integer getEmpId() {
- return empId;
- }
-
- public void setEmpId(Integer empId) {
- this.empId = empId;
- }
-
- public String getEmpName() {
- return empName;
- }
-
- public void setEmpName(String empName) {
- this.empName = empName;
- }
-
- public String getEmpAddress() {
- return empAddress;
- }
-
- public void setEmpAddress(String empAddress) {
- this.empAddress = empAddress;
- }
-
- public Long getSalary() {
- return salary;
- }
-
- public void setSalary(Long salary) {
- this.salary = salary;
- }
-
- public Integer getEmpAge() {
- return empAge;
- }
-
- public void setEmpAge(Integer empAge) {
- this.empAge = empAge;
- }
- }
EmployeeDao.java
- package com.dineshonjava.dao;
-
- import java.util.List;
-
- import com.dineshonjava.model.Employee;
-
- /**
- * @author Dinesh Rajput
- *
- */
- public interface EmployeeDao {
-
- public void addEmployee(Employee employee);
-
- public List<Employee> listEmployeess();
-
- public Employee getEmployee(int empid);
-
- public void deleteEmployee(Employee employee);
- }
EmployeeDaoImpl.java
- package com.dineshonjava.dao;
-
- import java.util.List;
-
- import org.hibernate.SessionFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Repository;
-
- import com.dineshonjava.model.Employee;
-
- /**
- * @author Dinesh Rajput
- *
- */
- @Repository("employeeDao")
- public class EmployeeDaoImpl implements EmployeeDao {
-
- @Autowired
- private SessionFactory sessionFactory;
-
- public void addEmployee(Employee employee) {
- sessionFactory.getCurrentSession().saveOrUpdate(employee);
- }
-
- @SuppressWarnings("unchecked")
- public List<Employee> listEmployeess() {
- return (List<Employee>) sessionFactory.getCurrentSession().createCriteria(Employee.class).list();
- }
-
- public Employee getEmployee(int empid) {
- return (Employee) sessionFactory.getCurrentSession().get(Employee.class, empid);
- }
-
- public void deleteEmployee(Employee employee) {
- sessionFactory.getCurrentSession().createQuery("DELETE FROM Employee WHERE empid = "+employee.getEmpId()).executeUpdate();
- }
- }
EmployeeService.java
- package com.dineshonjava.service;
-
- import java.util.List;
-
- import com.dineshonjava.model.Employee;
-
- /**
- * @author Dinesh Rajput
- *
- */
- public interface EmployeeService {
-
- public void addEmployee(Employee employee);
-
- public List<Employee> listEmployeess();
-
- public Employee getEmployee(int empid);
-
- public void deleteEmployee(Employee employee);
- }
EmployeeServiceImpl.java
- package com.dineshonjava.service;
-
- import java.util.List;
-
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
-
- import com.dineshonjava.dao.EmployeeDao;
- import com.dineshonjava.model.Employee;
-
- /**
- * @author Dinesh Rajput
- *
- */
- @Service("employeeService")
- @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
- public class EmployeeServiceImpl implements EmployeeService {
-
- @Autowired
- private EmployeeDao employeeDao;
-
- @Transactional(propagation = Propagation.REQUIRED, readOnly = false)
- public void addEmployee(Employee employee) {
- employeeDao.addEmployee(employee);
- }
-
- public List<Employee> listEmployeess() {
- return employeeDao.listEmployeess();
- }
-
- public Employee getEmployee(int empid) {
- return employeeDao.getEmployee(empid);
- }
-
- public void deleteEmployee(Employee employee) {
- employeeDao.deleteEmployee(employee);
- }
-
- }
EmployeeController.java
- package com.dineshonjava.controller;
-
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
-
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.validation.BindingResult;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.servlet.ModelAndView;
-
- import com.dineshonjava.bean.EmployeeBean;
- import com.dineshonjava.model.Employee;
- import com.dineshonjava.service.EmployeeService;
-
- /**
- * @author Dinesh Rajput
- *
- */
- @Controller
- public class EmployeeController {
-
- @Autowired
- private EmployeeService employeeService;
-
- @RequestMapping(value = "/save", method = RequestMethod.POST)
- public ModelAndView saveEmployee(@ModelAttribute("command")EmployeeBean employeeBean,
- BindingResult result) {
- Employee employee = prepareModel(employeeBean);
- employeeService.addEmployee(employee);
- return new ModelAndView("redirect:/add.html");
- }
-
- @RequestMapping(value="/employees", method = RequestMethod.GET)
- public ModelAndView listEmployees() {
- Map<String Object> model = new HashMap<String Object>();
- model.put("employees", prepareListofBean(employeeService.listEmployeess()));
- return new ModelAndView("employeesList", model);
- }
-
- @RequestMapping(value = "/add", method = RequestMethod.GET)
- public ModelAndView addEmployee(@ModelAttribute("command")EmployeeBean employeeBean,
- BindingResult result) {
- Map<String, Object> model = new HashMap<String, Object>();
- model.put("employees", prepareListofBean(employeeService.listEmployeess()));
- return new ModelAndView("addEmployee", model);
- }
-
- @RequestMapping(value = "/index", method = RequestMethod.GET)
- public ModelAndView welcome() {
- return new ModelAndView("index");
- }
-
- @RequestMapping(value = "/delete", method = RequestMethod.GET)
- public ModelAndView editEmployee(@ModelAttribute("command")EmployeeBean employeeBean,
- BindingResult result) {
- employeeService.deleteEmployee(prepareModel(employeeBean));
- Map<String, Object> model = new HashMap<String, Object>();
- model.put("employee", null);
- model.put("employees", prepareListofBean(employeeService.listEmployeess()));
- return new ModelAndView("addEmployee", model);
- }
-
- @RequestMapping(value = "/edit", method = RequestMethod.GET)
- public ModelAndView deleteEmployee(@ModelAttribute("command")EmployeeBean employeeBean,
- BindingResult result) {
- Map<String, Object> model = new HashMap<String, Object>();
- model.put("employee", prepareEmployeeBean(employeeService.getEmployee(employeeBean.getId())));
- model.put("employees", prepareListofBean(employeeService.listEmployeess()));
- return new ModelAndView("addEmployee", model);
- }
-
- private Employee prepareModel(EmployeeBean employeeBean){
- Employee employee = new Employee();
- employee.setEmpAddress(employeeBean.getAddress());
- employee.setEmpAge(employeeBean.getAge());
- employee.setEmpName(employeeBean.getName());
- employee.setSalary(employeeBean.getSalary());
- employee.setEmpId(employeeBean.getId());
- employeeBean.setId(null);
- return employee;
- }
-
- private List<EmployeeBean> prepareListofBean(List<Employee> employees){
- List<employeebean> beans = null;
- if(employees != null && !employees.isEmpty()){
- beans = new ArrayList<EmployeeBean>();
- EmployeeBean bean = null;
- for(Employee employee : employees){
- bean = new EmployeeBean();
- bean.setName(employee.getEmpName());
- bean.setId(employee.getEmpId());
- bean.setAddress(employee.getEmpAddress());
- bean.setSalary(employee.getSalary());
- bean.setAge(employee.getEmpAge());
- beans.add(bean);
- }
- }
- return beans;
- }
-
- private EmployeeBean prepareEmployeeBean(Employee employee){
- EmployeeBean bean = new EmployeeBean();
- bean.setAddress(employee.getEmpAddress());
- bean.setAge(employee.getEmpAge());
- bean.setName(employee.getEmpName());
- bean.setSalary(employee.getSalary());
- bean.setId(employee.getEmpId());
- return bean;
- }
- }
Spring Web configuration file web.xml
- <web-app version="2.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemalocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
-
- <servlet>
- <servlet-name>sdnext</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/sdnext-servlet.xml</param-value></init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>sdnext</servlet-name>
- <url-pattern>*.html</url-pattern>
- </servlet-mapping>
-
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- </welcome-file-list>
-
- </web-app>
Spring Web configuration file sdnext-servlet.xml
- <beans xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemalocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
-
- <context:property-placeholder location="classpath:resources/database.properties">
- </context:property-placeholder>
- <context:component-scan base-package="com.dineshonjava">
- </context:component-scan>
-
- <tx:annotation-driven transaction-manager="hibernateTransactionManager">
- </tx:annotation-driven>
-
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="jspViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
- <property name="prefix" value="/WEB-INF/views/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
-
- <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
- <property name="driverClassName" value="${database.driver}"></property>
- <property name="url" value="${database.url}"></property>
- <property name="username" value="${database.user}"></property>
- <property name="password" value="${database.password}"></property>
- </bean>
-
- <bean class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" id="sessionFactory">
- <property name="dataSource" ref="dataSource"></property>
- <property name="annotatedClasses">
- <list>
- <value>com.dineshonjava.model.Employee</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">${hibernate.dialect}</prop>
- <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto} </prop>
- </props>
- </property>
- </bean>
-
- <bean class="org.springframework.orm.hibernate3.HibernateTransactionManager" id="hibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory"></property>
- </bean>
- </beans>
addEmployee.jsp
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- <!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>Spring MVC Form Handling</title>
- </head>
- <body>
- <h2>Add Employee Data</h2>
- <form:form method="POST" action="/sdnext/save.html">
- <table>
- <tr>
- <td><form:label path="id">Employee ID:</form:label></td>
- <td><form:input path="id" value="${employee.id}" readonly="true"/></td>
- </tr>
- <tr>
- <td><form:label path="name">Employee Name:</form:label></td>
- <td><form:input path="name" value="${employee.name}"/></td>
- </tr>
- <tr>
- <td><form:label path="age">Employee Age:</form:label></td>
- <td><form:input path="age" value="${employee.age}"/></td>
- </tr>
- <tr>
- <td><form:label path="salary">Employee Salary:</form:label></td>
- <td><form:input path="salary" value="${employee.salary}"/></td>
- </tr>
-
- <tr>
- <td><form:label path="address">Employee Address:</form:label></td>
- <td><form:input path="address" value="${employee.address}"/></td>
- </tr>
- <tr>
- <td colspan="2"><input type="submit" value="Submit"/></td>
- </tr>
- </table>
- </form:form>
-
- <c:if test="${!empty employees}">
- <h2>List Employees</h2>
- <table align="left" border="1">
- <tr>
- <th>Employee ID</th>
- <th>Employee Name</th>
- <th>Employee Age</th>
- <th>Employee Salary</th>
- <th>Employee Address</th>
- <th>Actions on Row</th>
- </tr>
-
- <c:forEach items="${employees}" var="employee">
- <tr>
- <td><c:out value="${employee.id}"/></td>
- <td><c:out value="${employee.name}"/></td>
- <td><c:out value="${employee.age}"/></td>
- <td><c:out value="${employee.salary}"/></td>
- <td><c:out value="${employee.address}"/></td>
- <td align="center"><a href="edit.html?id=${employee.id}">Edit</a> | <a href="delete.html?id=${employee.id}">Delete</a></td>
- </tr>
- </c:forEach>
- </table>
- </c:if>
- </body>
- </html>