public class DtoWrapper {
public static void BindData(HashMap<String, Object> hashmap, IDtoSelector dtoClass)
{
for(Field filed : dtoClass.getClass().getDeclaredFields())
{
IColumn annotation = filed.getAnnotation(IColumn.class);
if(annotation != null)
{
if(hashmap.containsKey(annotation.Name()) == true)
{
try {
filed.setAccessible(true);
filed.set(dtoClass, hashmap.get(annotation.Name()));
filed.setAccessible(false);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
}
public static <T extends IDtoSelector> List<T> BindDataList(List<HashMap<String, Object>> hashmapList, Class<T> cls)
throws IllegalAccessException, InstantiationException {
List<T> codeDtoList = new ArrayList<>();
for(int i = 0; i < hashmapList.size(); i++){
T dto = cls.newInstance();
BindData(hashmapList.get(i), dto);
codeDtoList.add(dto);
}
return codeDtoList;
}
}
public interface IDtoSelector {
}
List<HashMap<String, Object>> mapList = sqlSession.selectList(SqlName.getQuery(SqlName.informationSelect, "getCode"), codeName);
List<CodeDto> codeDtoList = DtoWrapper.BindDataList(mapList, CodeDto.class);
@Setter
@Getter
public class CodeDto implements IDtoSelector {
/**
* column : CD_CLSFCTN
* 검색 문자열
*/
@ApiModelProperty(hidden = true)
private String codeName;
/**
* column : CD
* 코드
*/
@IColumn(Name = "CD")
@Expose
private String code;
/**
* column : CD_NM
* 코드명
*/
@IColumn(Name = "CD_NM")
@Expose
private String text;
/**
* column : SYS_CD_NM
* 시스템 코드명
*/
@IColumn(Name = "SYS_CD_NM")
@Expose
private String systemText;
/**
* column : SORT_ORDR
* 정렬순번
*/
@IColumn(Name = "SORT_ORDR")
@Expose
private int sortOrder;
}
이걸 만든 이유는... 데이터베이스 이름이 개똥같아서 -..- 내가 만들지도 않은 테이블 컬럼으로 계속되는 질문에 스트레스 받아 json으로 변경할 때 쓰는 용도..
'Java' 카테고리의 다른 글
자바 mybatis Like (0) | 2020.08.21 |
---|---|
자바 순차키 만들기 (0) | 2020.08.07 |
자바 비밀번호 암호화 (0) | 2020.07.23 |
자바 이메일 검사 (0) | 2020.07.23 |
자바 스프링 구조 (0) | 2020.07.23 |