// Path: src/main/java/org/geekmj/domain/Employee.java
// public class Employee {
// 	private int id;
// 	private String name;
// 	private String address;
// 	private Date createdOn;
// 	private Date modifiedOn;
// 
// 	public int getId() {
// 		return id;
// 	}
// 
// 	public void setId(int id) {
// 		this.id = id;
// 	}
// 
// 	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;
// 	}
// 
// 	public Date getCreatedOn() {
// 		return createdOn;
// 	}
// 
// 	public void setCreatedOn(Date createdOn) {
// 		this.createdOn = createdOn;
// 	}
// 
// 	public Date getModifiedOn() {
// 		return modifiedOn;
// 	}
// 
// 	public void setModifiedOn(Date modifiedOn) {
// 		this.modifiedOn = modifiedOn;
// 	}
// 
// }


import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.geekmj.domain.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
package org.geekmj.resource;




@Path("/employees")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class EmployeeResource {

	private final NamedParameterJdbcTemplate namedParameterJdbcTemplate;

	@Autowired
	public EmployeeResource(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
		this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
	}

	@POST
	public String createEmployee(final Employee employee) {

		String sql = "insert into EMPLOYEE values(DEFAULT, :name, :address, :createdOn, :modifiedOn)";

		SqlParameterSource namedParameters = new BeanPropertySqlParameterSource(employee);

		this.namedParameterJdbcTemplate.update(sql, namedParameters);

		return "{\"status\": \"Record Added Successfully\"}";
	}

	@GET
// Path: src/main/java/org/geekmj/domain/Employee.java
// public class Employee {
// 	private int id;
// 	private String name;
// 	private String address;
// 	private Date createdOn;
// 	private Date modifiedOn;
// 
// 	public int getId() {
// 		return id;
// 	}
// 
// 	public void setId(int id) {
// 		this.id = id;
// 	}
// 
// 	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;
// 	}
// 
// 	public Date getCreatedOn() {
// 		return createdOn;
// 	}
// 
// 	public void setCreatedOn(Date createdOn) {
// 		this.createdOn = createdOn;
// 	}
// 
// 	public Date getModifiedOn() {
// 		return modifiedOn;
// 	}
// 
// 	public void setModifiedOn(Date modifiedOn) {
// 		this.modifiedOn = modifiedOn;
// 	}
// 
// }


// Path: src/main/java/org/geekmj/resource/EmployeeResource.java
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.geekmj.domain.Employee;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;

package org.geekmj.resource;




@Path("/employees")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class EmployeeResource {

	private final NamedParameterJdbcTemplate namedParameterJdbcTemplate;

	@Autowired
	public EmployeeResource(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
		this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
	}

	@POST
	public String createEmployee(final Employee employee) {

		String sql = "insert into EMPLOYEE values(DEFAULT, :name, :address, :createdOn, :modifiedOn)";

		SqlParameterSource namedParameters = new BeanPropertySqlParameterSource(employee);

		this.namedParameterJdbcTemplate.update(sql, namedParameters);

		return "{\"status\": \"Record Added Successfully\"}";
	}

	@GET
	@Path("/{employeeId}")