Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AppConfig
- package com.mindtree.configuration;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.servlet.config.annotation.EnableWebMvc;
- @Configuration
- @EnableWebMvc
- @ComponentScan(basePackages = {"com.mindtree"})
- public class AppConfig {
- }
- ------------------------------------------------------------------------
- AppInitializer
- package com.mindtree.configuration;
- import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
- public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
- @Override
- protected Class<?>[] getRootConfigClasses() {
- // TODO Auto-generated method stub
- return new Class[] {AppConfig.class};
- }
- @Override
- protected Class<?>[] getServletConfigClasses() {
- // TODO Auto-generated method stub
- return new Class[] {};
- }
- @Override
- protected String[] getServletMappings() {
- // TODO Auto-generated method stub
- return new String[] {"/"};
- }
- }
- ----------------------------------------------------------------------
- HibernateConfiguration
- package com.mindtree.configuration;
- import java.util.Properties;
- import javax.sql.DataSource;
- import org.springframework.core.env.Environment;
- import org.springframework.jdbc.datasource.DriverManagerDataSource;
- import org.hibernate.SessionFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.PropertySource;
- import org.springframework.orm.hibernate5.HibernateTemplate;
- import org.springframework.orm.hibernate5.HibernateTransactionManager;
- import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- @Configuration
- @ComponentScan(basePackages = { "com.mindtree" })
- @EnableTransactionManagement
- @PropertySource(value = { "classpath:application.properties" })
- public class HibernateConfiguration {
- @Autowired
- private Environment environment;
- @Bean
- public HibernateTemplate getHibernateTemplate(SessionFactory sessionFactory)
- {
- return new HibernateTemplate(sessionFactory);
- }
- @Bean
- public LocalSessionFactoryBean sessionFactory()
- {
- String[] entityPackage = new String[] { "com.mindtree" };
- LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
- sessionFactory.setDataSource(dataSource());
- sessionFactory.setPackagesToScan(entityPackage);
- sessionFactory.setHibernateProperties(hibernateProperties());
- return sessionFactory;
- }
- @Bean
- public Properties hibernateProperties() {
- Properties properties = new Properties();
- properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
- properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
- properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
- properties.put("hibernate.hbm2ddl.auto", environment.getRequiredProperty("hibernate.hbm2ddl.auto"));
- properties.put("hibernate.connection.release_mode",
- environment.getRequiredProperty("hibernate.connection.release_mode"));
- properties.put("hibernate.connection.shutdown",
- environment.getRequiredProperty("hibernate.connection.shutdown"));
- return properties;
- }
- @Bean
- public DataSource dataSource() {
- DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClass"));
- dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
- dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
- dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
- return dataSource;
- }
- @Bean
- @Autowired
- public HibernateTransactionManager transactionManager(SessionFactory s) {
- HibernateTransactionManager txManager = new HibernateTransactionManager();
- txManager.setSessionFactory(s);
- return txManager;
- }
- }
- ----------------------------------------------------------------------------------------------
- EmployeeController
- package com.mindtree.controller;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.HttpStatus;
- import org.springframework.http.RequestEntity;
- import org.springframework.http.RequestEntity.BodyBuilder;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RestController;
- import com.mindtree.dto.ResultDTO;
- import com.mindtree.entity.Employee;
- import com.mindtree.service.EmployeeService;
- @RestController
- public class EmployeeController {
- @Autowired
- private EmployeeService employeeService;
- @PostMapping("/employee/")
- public ResponseEntity<ResultDTO> save(@RequestBody Employee e)
- {
- ResultDTO result = new ResultDTO();
- int id = (int) employeeService.save(e);
- if(id>0)
- {
- result.setStatusCode(HttpStatus.OK.value());
- result.setStatus("Success");
- result.setMessage("Added Successfully");
- return new ResponseEntity<ResultDTO>(result, HttpStatus.OK);
- }
- else
- {
- result.setStatusCode(HttpStatus.BAD_REQUEST.value());
- result.setStatus("Failure");
- result.setMessage("Mismatch");
- return new ResponseEntity<ResultDTO>(result, HttpStatus.BAD_REQUEST);
- }
- }
- @GetMapping("/employee/{id}")
- public ResponseEntity<ResultDTO> get(@PathVariable("id") int id)
- {
- ResultDTO result = new ResultDTO();
- Employee e = employeeService.get(id);
- if(e != null)
- {
- result.setStatusCode(HttpStatus.OK.value());
- result.setStatus("Success");
- result.setMessage("Added Successfully !");
- return new ResponseEntity<ResultDTO>(result, HttpStatus.OK);
- }
- else
- {
- result.setStatusCode(HttpStatus.BAD_REQUEST.value());
- result.setStatus("Failure");
- result.setMessage("Mismatch");
- return new ResponseEntity<ResultDTO>(result, HttpStatus.NOT_FOUND);
- }
- }
- @GetMapping("/employee/")
- public ResponseEntity<List<Employee>> list()
- {
- List<Employee> result = employeeService.list();
- return new ResponseEntity<List<Employee>>(result, HttpStatus.OK);
- }
- @PutMapping("/employee/{id}")
- public ResponseEntity<ResultDTO> update(@PathVariable("id") int id, @RequestBody Employee e)
- {
- ResultDTO result = new ResultDTO();
- String m = employeeService.update(id, e);
- if(m == null)
- {
- result.setStatusCode(HttpStatus.OK.value());
- result.setStatus("Success");
- result.setMessage("Successfully updated Employee "+ id);
- return new ResponseEntity<ResultDTO>(result, HttpStatus.OK);
- }
- else
- {
- result.setStatusCode(HttpStatus.NOT_FOUND.value());
- result.setStatus("Failure");
- result.setMessage(m);
- return new ResponseEntity<ResultDTO>(result, HttpStatus.NOT_FOUND);
- }
- }
- @DeleteMapping("/employee/{id}")
- public ResponseEntity<?> delete(@PathVariable("id") int id)
- {
- ResultDTO result = new ResultDTO();
- String m = employeeService.delete(id);
- if(m==null)
- {
- result.setStatusCode(HttpStatus.OK.value());
- result.setStatus("Success");
- result.setMessage("Successfully deleted Employee "+id);
- return new ResponseEntity<ResultDTO>(result, HttpStatus.OK);
- }
- else
- {
- result.setStatusCode(HttpStatus.NOT_FOUND.value());
- result.setStatus("Failure");
- result.setMessage(m);
- return new ResponseEntity<ResultDTO>(result, HttpStatus.OK);
- }
- }
- }
- -------------------------------------------------------------------------------------------------------
- EmployeeDao
- package com.mindtree.dao;
- import java.util.List;
- import com.mindtree.entity.Employee;
- public interface EmployeeDao {
- public int save(Employee employee);
- public Employee get(int id);
- public List<Employee> list();
- public String update(int id, Employee employee);
- public String delete(int id);
- }
- -----------------------------------------------------------------------------------------------------------
- EmployeeDaoImpl
- package com.mindtree.dao.impl;
- import java.util.List;
- import javax.persistence.Query;
- import javax.persistence.criteria.CriteriaBuilder;
- import javax.persistence.criteria.CriteriaQuery;
- import javax.persistence.criteria.Root;
- import javax.transaction.Transactional;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.orm.hibernate5.HibernateTemplate;
- import org.springframework.stereotype.Repository;
- import com.mindtree.dao.EmployeeDao;
- import com.mindtree.entity.Employee;
- @Repository
- public class EmployeeDaoImpl implements EmployeeDao{
- @Autowired
- private SessionFactory sessionFactory;
- @Autowired
- HibernateTemplate hibernateTemplate;// = new HibernateTemplate(SessionFactory sessionFactory);
- @Transactional
- public int save(Employee employee) {
- // TODO Auto-generated method stub
- //sessionFactory.getCurrentSession().save(employee);
- hibernateTemplate.save(employee);
- System.out.println(employee.getId());
- return employee.getId();
- }
- public Employee get(int id) {
- // TODO Auto-generated method stub
- //return sessionFactory.getCurrentSession().get(Employee.class, id);
- return hibernateTemplate.get(Employee.class, id);
- }
- public List<Employee> list() {
- // TODO Auto-generated method stub
- Session session = sessionFactory.getCurrentSession();
- CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
- CriteriaQuery<Employee> criteriaQuery = criteriaBuilder.createQuery(Employee.class);
- Root<Employee> root = criteriaQuery.from(Employee.class);
- criteriaQuery.select(root);
- Query query = session.createQuery(criteriaQuery);
- return query.getResultList();
- }
- public String update(int id, Employee employee) {
- // TODO Auto-generated method stub
- Session session = sessionFactory.getCurrentSession();
- Employee emp = session.byId(Employee.class).load(id);
- String m = null;
- if(emp != null)
- {
- emp.setUsername(employee.getUsername());
- emp.setPassword(employee.getPassword());
- emp.setFullname(employee.getFullname());
- emp.setEmail(employee.getEmail());
- emp.setDob(employee.getDob());
- emp.setGender(employee.getGender());
- emp.setSecurequestion(employee.getSecurequestion());
- emp.setSecureanswer(employee.getSecureanswer());
- //session.update(emp);
- hibernateTemplate.update(emp);
- session.flush();
- }
- else
- {
- m = "Doesn't Exist !";
- }
- return m;
- }
- public String delete(int id) {
- // TODO Auto-generated method stub
- Session session = sessionFactory.getCurrentSession();
- String m = null;
- Employee emp = session.byId(Employee.class).load(id);
- if(emp != null)
- {
- //session.delete(emp);
- hibernateTemplate.delete(emp);
- }
- else
- {
- m = "Not Found !!";
- }
- return m;
- }
- }
- -------------------------------------------------------------------------------------------------------------
- ResultDTO
- package com.mindtree.dto;
- public class ResultDTO {
- String status;
- int statusCode;
- String message;
- public String getStatus() {
- return status;
- }
- public void setStatus(String status) {
- this.status = status;
- }
- public int getStatusCode() {
- return statusCode;
- }
- public void setStatusCode(int statusCode) {
- this.statusCode = statusCode;
- }
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- }
- ----------------------------------------------------------------------------------------------------------
- Employee
- package com.mindtree.entity;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.GenerationType;
- import javax.persistence.Id;
- @Entity
- public class Employee {
- @Id
- @GeneratedValue(strategy=GenerationType.IDENTITY)
- int id;
- String username;
- String password;
- String fullname;
- String email;
- String dob;
- String gender;
- String securequestion;
- String secureanswer;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getFullname() {
- return fullname;
- }
- public void setFullname(String fullname) {
- this.fullname = fullname;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public String getDob() {
- return dob;
- }
- public void setDob(String dob) {
- this.dob = dob;
- }
- public String getGender() {
- return gender;
- }
- public void setGender(String gender) {
- this.gender = gender;
- }
- public String getSecurequestion() {
- return securequestion;
- }
- public void setSecurequestion(String securequestion) {
- this.securequestion = securequestion;
- }
- public String getSecureanswer() {
- return secureanswer;
- }
- public void setSecureanswer(String secureanswer) {
- this.secureanswer = secureanswer;
- }
- }
- --------------------------------------------------------------------------------------------------------
- EmployeeService
- package com.mindtree.service;
- import java.util.List;
- import com.mindtree.entity.Employee;
- public interface EmployeeService {
- int save(Employee e);
- Employee get(int id);
- List<Employee> list();
- String update(int id, Employee e);
- String delete(int id);
- }
- ---------------------------------------------------------------------------------------------------------
- EmployeeServiceImpl
- package com.mindtree.service.impl;
- import java.util.ArrayList;
- import java.util.List;
- import javax.transaction.Transactional;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.mindtree.dao.EmployeeDao;
- import com.mindtree.entity.Employee;
- import com.mindtree.service.EmployeeService;
- @Service
- @Transactional
- public class EmployeeServiceImpl implements EmployeeService {
- @Autowired
- EmployeeDao dao;
- public int save(Employee e) {
- // TODO Auto-generated method stub
- Employee emp = new Employee();
- emp.setUsername(e.getUsername());
- emp.setPassword(e.getPassword());
- emp.setFullname(e.getFullname());
- emp.setEmail(e.getEmail());
- emp.setDob(e.getDob());
- emp.setGender(e.getGender());
- emp.setSecurequestion(e.getSecurequestion());
- emp.setSecureanswer(e.getSecureanswer());
- int empId = dao.save(emp);
- return empId;
- }
- public Employee get(int id) {
- // TODO Auto-generated method stub
- Employee emp = dao.get(id);
- Employee e = new Employee();
- if(emp != null)
- {
- e.setUsername(emp.getUsername());
- e.setPassword(emp.getPassword());
- e.setFullname(emp.getFullname());
- e.setEmail(emp.getEmail());
- e.setGender(emp.getGender());
- e.setDob(emp.getDob());
- e.setSecurequestion(emp.getSecurequestion());
- e.setSecureanswer(emp.getSecureanswer());
- }
- else
- {
- e=null;
- }
- return e;
- }
- @Transactional
- public List<Employee> list() {
- // TODO Auto-generated method stub
- int i = 1;
- List<Employee> e = dao.list();
- List<Employee> emp = new ArrayList<Employee>();
- if(!e.isEmpty())
- {
- for(Employee em:e)
- {
- Employee emp1 = new Employee();
- emp1.setId(i);
- emp1.setUsername(em.getUsername());
- emp1.setPassword(em.getPassword());
- emp1.setFullname(em.getFullname());
- emp1.setEmail(em.getEmail());
- emp1.setGender(em.getGender());
- emp1.setDob(em.getDob());
- emp1.setSecurequestion(em.getSecurequestion());
- emp1.setSecureanswer(em.getSecureanswer());
- emp.add(emp1);
- i= i+1;
- }
- }
- return emp;
- }
- @Transactional
- public String update(int id, Employee e) {
- // TODO Auto-generated method stub
- String m = dao.update(id, e);
- return m;
- }
- @Transactional
- public String delete(int id) {
- // TODO Auto-generated method stub
- String m = dao.delete(id);
- return m;
- }
- }
- ---------------------------------------------------------------------------------------------------
- application properties
- jdbc.driverClass=com.mysql.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3306/restdb
- jdbc.username=root
- jdbc.password=Welcome123
- hibernate.dialect=org.hibernate.dialect.MySQLDialect
- hibernate.show_sql=true
- hibernate.hbm2ddl.auto=update
- hibernate.format_sql=true
- hibernate.connection.release_mode=after_transaction
- hibernate.connection.shutdown=true
- -----------------------------------------------------------------------------------
- web.xml
- <!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
- <web-app>
- <display-name>Archetype Created Web Application</display-name>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
- ------------------------------------------------------------------------------
- index.jsp
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <!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>Insert title here</title>
- </head>
- <body>
- afij
- </body>
- </html>
- --------------------------------------------------------------------------
- pom.xml
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.mindtree</groupId>
- <artifactId>Employee-Rest</artifactId>
- <packaging>war</packaging>
- <version>0.0.1-SNAPSHOT</version>
- <name>Employee-Rest Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <properties>
- <org.springframework.version>5.0.7.RELEASE</org.springframework.version>
- <jackson.databind.version>2.9.5</jackson.databind.version>
- <hibernate.version>5.2.12.Final</hibernate.version>
- <mysql.connector.version>5.1.46</mysql.connector.version>
- </properties>
- <dependencies>
- <!-- Jackson -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${jackson.databind.version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.dataformat</groupId>
- <artifactId>jackson-dataformat-xml</artifactId>
- <version>${jackson.databind.version}</version>
- </dependency>
- <!-- Spring -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>${org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- <version>${org.springframework.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>${org.springframework.version}</version>
- </dependency>
- <!-- Hibernate -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${hibernate.version}</version>
- </dependency>
- <!-- MySQL -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>${mysql.connector.version}</version>
- </dependency>
- <!-- Servlet -->
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
- <!-- Test -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <finalName>Employee-Rest</finalName>
- </build>
- </project>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement