안녕하세요! IT Window 킷도우입니다. 23년 새로운 한 해가 밝았습니다.
22년 정말 수고 많으셨고, 23년에도 하시는 일, 투자, 취업, 이직, 결혼, 연애 등 모두 잘 되시길 바라면서 오늘도 여러분들에게 도움 될만한 글 하나 가져왔습니다.
바로 스프링과 넥사크로를 연동해서 쓰는 개발 환경에서 조회 기능을 구현하는 것인데요. 스프링에서 조회 기능을 구현하기에 앞서 프론트엔트 코딩을 진행해 줘야겠죠? 넥사크로에서 조회 기능 구현을 위한 프론트엔드 코딩은 아래 링크에 잘 설명돼 있으니 참고 부탁드립니다.
또한, 스프링 프레임웍의 구조와 개념에 대해 궁금하신 분들은 아래 링크를 보고 오시면 도움됩니다.
네 그러면 프론트엔드 코딩이 전부 완료됐다는 가정하에 스프링 프레임웍, 백엔드 개발을 시작해 보겠습니다!
1. Controller 스크립트 작성
Controller.java에 /selectOrdList.do 요청 처리에 대한 메서드를 아래와 같이 추가합니다.
@RequestMapping(value = "/selectOrdList.do")
public NexacroResult selectOrdList(@ParamDataSet(name = "ds_searchList") Map<String,Object> ds_searchList) throws NexacroException {
NexacroResult result = new NexacroResult();
ArrayList<Map<String,Object>> ds_list = new ArrayList<Map<String,Object>>();
ds_list = uidapterSampleService.selectOrdList(ds_searchList);
result.addDataSet("ds_list",ds_list);
return result;
}
2. Service 스크립트 작성
Service.java 인터페이스에 아래와 같이 메서드를 추가합니다.
public interface UidapterBoardService {
ArrayList<Map<String,Object>> selectOrdList(Map<String, Object> ds_searchList);
}
해당 인터페이스를 상속받은 ServiceImpl.java에 아래와 같이 메서드를 추가합니다.
@Service
public class UidapterBoardServiceImpl implements UidapterBoardService {
@Autowired
private SqlSessionTemplate sqlSession;
@Override
public ArrayList<Map<String, Object>> selectOrdList(Map<String, Object> ds_searchList) {
// TODO Auto-generated method stub
UiadapterBoardMapper mapper = sqlSession.getMapper(UiadapterBoardMapper.class);
return mapper.selectOrdList(ds_searchList);
}
}
3. Mapper 스크립트 작성
Mapper.java에 아래와 같이 메서드를 추가합니다.
@Mapper
public interface UiadapterBoardMapper {
public ArrayList<Map<String, Object>> selectOrdList(Map<String, Object> ds_searchList);
}
4. Xml 스크립트 작성
xml 스크립트 작성시 주의할 점은 3가지입니다. 첫째는, id입니다. 반드시 이 id가 mapper에서 정의한 메서드 명칭과 일치해야 이상없이 mapper가 xml에서 원하는 쿼리를 가져올 수 있습니다. 둘째는, parameterType입니다. 쿼리를 실행 시키기 위한 특정 변수가 필요하다면 반드시 parameterType을 지정해야 합니다. 이 타입을 Map형태로 받을지 또는 String형태로 받을지 또는 아무 것도 받을 필요 없다면 정의하지 않고 생략 가능합니다. 마지막으로 resultType입니다. 여러 개의 리스트 형태라면 Map, 결과 값이 하나라면 String, 하나인 결과 값이 정수라면 Integer와 같은 형태로 return값의 형태를 정의합니다. 리턴 값을 받을 필요가 없다면 생략 가능합니다.
<select id="selectOrdList" parameterType="java.util.Map" resultType = "java.util.Map">
SELECT ORD.ORD_NO AS ORD_NO
, FN_CODE_NM('001',ORD.ORD_STAT_CD) AS ORD_STAT_NM
, ORD.CUST_CD AS CUST_NO
, CUST.CUST_NM AS CUST_NM
, FN_CODE_NM('002',CUST.CUST_GBCD) AS CUST_GBCD_NM
, CUST.PHONE AS PHONE
, CUST.ADDR AS ADDR
, ITEM.ITEM_NM AS ITEM_NM
, ORD.REG_DT AS REG_DT
FROM TB_ORD ORD
LEFT JOIN TB_CUST CUST ON ORD.CUST_CD = CUST.CUST_CD
LEFT JOIN TB_ITEM ITEM ON ORD.ITEM_CD = ITEM.ITEM_CD
WHERE 1=1
<if test="ORD_NO != null and ORD_NO !=''">
AND ORD.ORD_NO = #{ORD_NO}
</if>
<if test="CUST_NM != null and CUST_NM !=''">
AND CUST.CUST_NM = #{CUST_NM}
</if>
<if test="COMP_YN == 'true'">
AND CUST.CUST_GBCD = 'C'
</if>
<if test="ORD_STAT_CD != null and ORD_STAT_CD !=''">
AND ORD.ORD_STAT_CD = #{ORD_STAT_CD}
</if>
<if test="CUST_GBCD != null and CUST_GBCD !=''">
AND CUST.CUST_GBCD = #{CUST_GBCD}
</if>
</select>
5. 결과 확인
이제 백엔드 개발이 완료됐으므로 넥사크로에서 프로젝트를 실행시켜 조회 버튼을 눌러보겠습니다.
네 이렇게 전체 리스트가 조회되는 모습을 볼 수 있고 이번엔 검색 조건에 데이터를 입력하여 알맞는 데이가 나오는지 확인해 보겠습니다.
네 이렇게해서 넥사크로 스프링 조회 기능 구현하는 방법에 대해서 알아봤습니다.
여러분들에게 작은 도움됐길 바라며 글 마치겠습니다.
새해 복 많이 받으세요~~~
댓글