본문 바로가기
킷도우의 IT/스프링(Spring)

[실무 경험담] 스프링(Spring)에서 조회 기능 구현하기(스프링 넥사크로 N 연동)

by 킷도우 2023. 1. 1.
반응형

안녕하세요! IT Window 킷도우입니다. 23년 새로운 한 해가 밝았습니다.

22년 정말 수고 많으셨고, 23년에도 하시는 일, 투자, 취업, 이직, 결혼, 연애 등 모두 잘 되시길 바라면서 오늘도 여러분들에게 도움 될만한 글 하나 가져왔습니다.

 

바로 스프링과 넥사크로를 연동해서 쓰는 개발 환경에서 조회 기능을 구현하는 것인데요. 스프링에서 조회 기능을 구현하기에 앞서 프론트엔트 코딩을 진행해 줘야겠죠? 넥사크로에서 조회 기능 구현을 위한 프론트엔드 코딩은 아래 링크에 잘 설명돼 있으니 참고 부탁드립니다.

https://kitdow.tistory.com/3

 

[실무 경험담] 넥사크로(Nexacro N)에서 스프링(Spring)으로 데이터 요청하기 - 넥사크로 프론트엔드

안녕하세요. IT Window 킷도우입니다. 포르투갈을 꺾고 16강에 진출한 대한민국...!!!!! 우리네 인생도 대한민국 축구 대표팀처럼 성공의 결실을 맺길 기도하면서 오늘도 여러분들을 위해 도움이 될

kitdow.tistory.com

 

또한, 스프링 프레임웍의 구조와 개념에 대해 궁금하신 분들은 아래 링크를 보고 오시면 도움됩니다.

https://kitdow.tistory.com/12

 

[Spring Framework] 스프링 프레임웍 구조와 데이터 흐름 9단계

안녕하세요. IT Window 킷도우입니다.오늘 밤 00시 드디어 아르헨티나 VS 프랑스의 결승전 경기가 열립니다. 메시가 우승하게 된다면 발롱도르, 챔스, 올림픽, 코파, 월드컵까지.. 정말 모든 대회를

kitdow.tistory.com

 

네 그러면 프론트엔드 코딩이 전부 완료됐다는 가정하에 스프링 프레임웍, 백엔드 개발을 시작해 보겠습니다! 

 

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입니다. 반드시 이 idmapper에서 정의한 메서드 명칭과 일치해야 이상없이 mapperxml에서 원하는 쿼리를 가져올 수 있습니다. 둘째는, 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. 결과 확인

이제 백엔드 개발이 완료됐으므로 넥사크로에서 프로젝트를 실행시켜 조회 버튼을 눌러보겠습니다.

넥사크로 스프링 조회 기능 구현 결과 화면 - 1

네 이렇게 전체 리스트가 조회되는 모습을 볼 수 있고 이번엔 검색 조건에 데이터를 입력하여 알맞는 데이가 나오는지 확인해 보겠습니다.

넥사크로 스프링 조회 기능 구현 결과 화면 - 2

네 이렇게해서 넥사크로 스프링 조회 기능 구현하는 방법에 대해서 알아봤습니다.

여러분들에게 작은 도움됐길 바라며 글 마치겠습니다.

 

새해 복 많이 받으세요~~~

반응형

댓글