com.banking.controller.EmployeeController.java Source code

Java tutorial

Introduction

Here is the source code for com.banking.controller.EmployeeController.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.banking.controller;

import com.banking.model.Employee;
import com.banking.utils.DepartmentEnum;
import com.banking.utils.EmployeePost;
import com.banking.utils.Status;
import com.banking.utils.UserType;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;

/**
 *
 * @author raunakshakya
 */
public class EmployeeController {

    private JdbcTemplate jdbcTemplate;

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    public List<Employee> list() {
        return jdbcTemplate.query(
                "SELECT * FROM employee_table WHERE employee_isactive='1' ORDER BY employee_firstname ASC",
                new ResultSetExtractor<List<Employee>>() {
                    @Override
                    public List<Employee> extractData(ResultSet rs) throws SQLException, DataAccessException {
                        List<Employee> list = new ArrayList<>();
                        while (rs.next()) {
                            Employee employee = new Employee();
                            employee.setId(rs.getInt("employee_id"));
                            employee.setFirstName(rs.getString("employee_firstname"));
                            employee.setMiddleName(rs.getString("employee_middlename"));
                            employee.setLastName(rs.getString("employee_lastname"));
                            employee.setHomeContact(rs.getString("employee_homecontact"));
                            employee.setMobileNumber(rs.getString("employee_mobilecontact"));
                            employee.setDateOfBirth(rs.getString("employee_dateofbirth"));
                            employee.setDateOfJoin(rs.getString("employee_dateofjoin"));
                            employee.setAddressId(rs.getInt("employee_address"));
                            String post = rs.getString("employee_post");
                            employee.setPost(EmployeePost.valueOf(post));
                            list.add(employee);
                        }
                        return list;
                    }
                });
    }

    public Employee findById(int empid) {
        return jdbcTemplate.query("SELECT * FROM employee_table WHERE employee_id='" + empid + "'",
                new ResultSetExtractor<Employee>() {
                    @Override
                    public Employee extractData(ResultSet rs) throws SQLException, DataAccessException {
                        Employee employee = new Employee();
                        while (rs.next()) {
                            employee.setId(rs.getInt("employee_id"));
                            employee.setFirstName(rs.getString("employee_firstname"));
                            employee.setMiddleName(rs.getString("employee_middlename"));
                            employee.setLastName(rs.getString("employee_lastname"));
                            employee.setHomeContact(rs.getString("employee_homecontact"));
                            employee.setMobileNumber(rs.getString("employee_mobilecontact"));
                            employee.setDateOfBirth(rs.getString("employee_dateofbirth"));
                            employee.setDateOfJoin(rs.getString("employee_dateofjoin"));
                            employee.setAddressId(rs.getInt("employee_address"));
                            String post = rs.getString("employee_post");
                            employee.setPost(EmployeePost.valueOf(post));
                            String department = rs.getString("employee_department");
                            employee.setDepartment(DepartmentEnum.valueOf(department));
                            String status = rs.getString("employee_isactive");
                            employee.setStatus(Status.valueOf(status));
                            String type = rs.getString("employee_isadmin");
                            employee.setUserType(UserType.valueOf(type));
                        }
                        return employee;
                    }
                });
    }

    public List<Employee> listDeletedEmployees() {
        return jdbcTemplate.query(
                "SELECT * FROM employee_table WHERE employee_isactive='0' ORDER BY employee_firstname ASC",
                new ResultSetExtractor<List<Employee>>() {
                    @Override
                    public List<Employee> extractData(ResultSet rs) throws SQLException, DataAccessException {
                        List<Employee> list = new ArrayList<>();
                        while (rs.next()) {
                            Employee employee = new Employee();
                            employee.setFirstName(rs.getString("employee_firstname"));
                            employee.setMiddleName(rs.getString("employee_middlename"));
                            employee.setLastName(rs.getString("employee_lastname"));
                            employee.setHomeContact(rs.getString("employee_homecontact"));
                            employee.setMobileNumber(rs.getString("employee_mobilecontact"));
                            employee.setDateOfBirth(rs.getString("employee_dateofbirth"));
                            employee.setDateOfJoin(rs.getString("employee_dateofjoin"));
                            employee.setAddressId(rs.getInt("employee_address"));
                            String post = rs.getString("employee_post");
                            employee.setPost(EmployeePost.valueOf(post));
                            list.add(employee);
                        }
                        return list;
                    }
                });
    }

    public int save(Employee employee) {
        String query = "INSERT INTO employee_table(" + "employee_firstname, " + "employee_middlename, "
                + "employee_lastname, " + "employee_homecontact, " + "employee_mobilecontact, "
                + "employee_dateofjoin, " + "employee_dateofbirth, " + "employee_department, " + "employee_post, "
                + "employee_isactive, " + "employee_isadmin) " + "VALUES('" + employee.getFirstName() + "','"
                + employee.getMiddleName() + "','" + employee.getLastName() + "','" + employee.getHomeContact()
                + "','" + employee.getMobileNumber() + "','" + employee.getDateOfBirth() + "','"
                + employee.getDateOfJoin() + "','" + employee.getDepartment() + "', '" + employee.getPost() + "', '"
                + employee.getStatus() + "', '" + employee.getUserType() + "')";
        return jdbcTemplate.update(query);
    }

    public int update(Employee employee) {
        String query = "UPDATE employee_table SET " + "employee_firstname='" + employee.getFirstName() + "', "
                + "employee_middlename='" + employee.getMiddleName() + "', " + "employee_lastname='"
                + employee.getLastName() + "', " + "employee_homecontact='" + employee.getHomeContact() + "', "
                + "employee_mobilecontact='" + employee.getMobileNumber() + "', " + "employee_dateofjoin='"
                + employee.getDateOfJoin() + "', " + "employee_department='" + employee.getDepartment() + "', "
                + "employee_post='" + employee.getPost() + "', " + "employee_isadmin='" + employee.getUserType()
                + "', " + "employee_isactive='" + employee.getStatus() + "' " + "where " + "employee_id='"
                + employee.getId() + "'";
        return jdbcTemplate.update(query);
    }

    public int delete(Integer id) {
        String query = "UPDATE employee_table SET " + "employee_isactive='0' " + "WHERE " + "employee_id='" + id
                + "'";
        return jdbcTemplate.update(query);
    }

    public int restore(Integer id) {
        String query = "UPDATE employee_table SET " + "employee_isactive='1' " + "WHERE " + "employee_id='" + id
                + "'";
        return jdbcTemplate.update(query);
    }

}