Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.mrtanawat.tpbiz.material.api;

public class DuplicateCodeException extends Exception {
private static final long serialVersionUID = 544877625162280649L;
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public interface IMaterialTypeService {
* @param type
* @return newly added material type with id injected
*/
public MaterialType add(MaterialType type);
public MaterialType add(MaterialType type) throws DuplicateCodeException;
/**
* Update existing material type
* @param type
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ public interface IProviderService {
* @param provider
* @return newly added provide with id injected
*/
public Provider add(Provider provider);
public Provider add(Provider provider) throws DuplicateCodeException;
/**
* Update provider
* @param provider
* @throws ProviderNotExistException when cannot find provider
* @throws EntityNotExistException when cannot find provider
*/
public void update(Provider provider) throws ProviderNotExistException;
public void update(Provider provider) throws EntityNotExistException;
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.mrtanawat.tpbiz.material.impl;

import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;

public class DBHelper {

public static boolean isExistInDB(SimpleJdbcTemplate jdbcTemplate, String tableName, String whereColumnName, String whereValue)
{
String sql = "SELECT COUNT(*) FROM " + tableName +
" WHERE "+ whereColumnName+ " = ?";
int count = jdbcTemplate.queryForInt(sql, whereValue);
if(count>0)
return true;
return false;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.mrtanawat.tpbiz.material.impl;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;
import com.mrtanawat.tpbiz.material.entity.MaterialType;

public class MaterialRowMapper implements RowMapper<MaterialType> {

@Override
public MaterialType mapRow(ResultSet resultSet, int rowNum) throws SQLException {
MaterialType materialType = new MaterialType();
materialType.setId(resultSet.getInt("ID"));
materialType.setCode(resultSet.getString("CODE"));
materialType.setName(resultSet.getString("NAME"));
materialType.setRemarks(resultSet.getString("REMARKS"));
return materialType;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package com.mrtanawat.tpbiz.material.impl;

import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;

import com.mrtanawat.tpbiz.material.api.DuplicateCodeException;
import com.mrtanawat.tpbiz.material.api.EntityNotExistException;
import com.mrtanawat.tpbiz.material.api.IMaterialTypeService;
import com.mrtanawat.tpbiz.material.entity.MaterialType;

public class MaterialTypeService implements IMaterialTypeService {

private SimpleJdbcTemplate jdbcTemplate;
private MaterialRowMapper materialRowMapper;
private static final String MATERAIL_TYPE_TABLE = "material_types";

public MaterialTypeService()
{
this.materialRowMapper = new MaterialRowMapper();
}

public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new SimpleJdbcTemplate(dataSource);
}

@Override
public MaterialType add(MaterialType type) throws DuplicateCodeException{
if(DBHelper.isExistInDB(this.jdbcTemplate,MATERAIL_TYPE_TABLE,"CODE",type.getCode()))
throw new DuplicateCodeException();

String sql = "INSERT INTO "+ MATERAIL_TYPE_TABLE
+" (CODE, NAME, REMARKS) VALUES (?,?,?)";
jdbcTemplate.update(sql, type.getCode(),
type.getName(),
type.getRemarks());

sql = "SELECT * FROM " + MATERAIL_TYPE_TABLE
+ " WHERE ID = LAST_INSERT_ID()";
type = jdbcTemplate.queryForObject(sql, this.materialRowMapper);
return type;
}

@Override
public void update(MaterialType type) throws EntityNotExistException {
long typeId = type.getId();
if(!DBHelper.isExistInDB(this.jdbcTemplate,MATERAIL_TYPE_TABLE,"ID",String.valueOf(typeId)))
throw new EntityNotExistException();

String sql = "UPDATE " + MATERAIL_TYPE_TABLE +
" SET NAME = ?, REMARKS = ? " +
" WHERE ID = ?";

jdbcTemplate.update(sql, type.getName(),
type.getRemarks(),
typeId);

}

@Override
public List<MaterialType> list(int start, int limit) {
String sql = "SELECT * FROM " + MATERAIL_TYPE_TABLE +
" LIMIT ?, ? ";

return jdbcTemplate.query(sql,this.materialRowMapper,
start,
limit);

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import javax.sql.DataSource;

import com.mrtanawat.tpbiz.material.api.DuplicateCodeException;
import com.mrtanawat.tpbiz.material.api.IProviderService;
import com.mrtanawat.tpbiz.material.api.ProviderNotExistException;
import com.mrtanawat.tpbiz.material.api.EntityNotExistException;
import com.mrtanawat.tpbiz.material.entity.Provider;

public class ProviderService implements IProviderService {

private SimpleJdbcTemplate jdbcTemplate;
private ProviderRowMapper providerRowMapper;
private static final String PROVIDER_TABLE = "mat_providers";

public ProviderService()
{
Expand All @@ -23,21 +25,46 @@ public void setDataSource(DataSource dataSource) {

@Override
public Provider findByCode(String code) {
String sql = "SELECT * FROM mat_providers WHERE CODE = ?";
String sql = "SELECT * FROM " +PROVIDER_TABLE+ " WHERE CODE = ?";
Provider provider = jdbcTemplate.queryForObject(sql, this.providerRowMapper, code);
return provider;
}

@Override
public Provider add(Provider provider) {
// TODO Auto-generated method stub
return null;
public Provider add(Provider provider) throws DuplicateCodeException {

if(DBHelper.isExistInDB(this.jdbcTemplate,PROVIDER_TABLE,"CODE",provider.getCode()))
throw new DuplicateCodeException();

String sql = "INSERT INTO "+ PROVIDER_TABLE
+" (CODE, NAME, ADDRESS, PLACE, REMARKS) VALUES (?,?,?,?,?)";
jdbcTemplate.update(sql, provider.getCode(),
provider.getName(),
provider.getAddress(),
provider.getPlace(),
provider.getRemark());

sql = "SELECT * FROM " + PROVIDER_TABLE
+ " WHERE ID = LAST_INSERT_ID()";
provider = jdbcTemplate.queryForObject(sql, this.providerRowMapper);
return provider;
}

@Override
public void update(Provider provider) throws ProviderNotExistException {
// TODO Auto-generated method stub

public void update(Provider provider) throws EntityNotExistException {
//TODO do I need to check code? cause code not suppose to be able to change
long providerId = provider.getId();
if(!DBHelper.isExistInDB(this.jdbcTemplate,PROVIDER_TABLE,"ID",String.valueOf(providerId)))
throw new EntityNotExistException();

String sql = "UPDATE " + PROVIDER_TABLE +
" SET NAME = ?, ADDRESS= ?, PLACE = ?, REMARKS = ? " +
" WHERE ID = ?";

jdbcTemplate.update(sql, provider.getName(),
provider.getAddress(),
provider.getPlace(),
provider.getRemark(),
providerId);
}

}
Loading