본문 바로가기

일경험

[국민취업지원제도 일경험프로그램 35일차] Nexacro 트랜잭션 연결, iBatis 개념

반응형

35일 차 특이사항

1. 어제 한 사람이 나갔다. 다른 중견기업에 취직이 됐다는 것인데 개발자 직군으로 변경이 가능한? 곳으로 갔다고 한다. 개발자로 취업한 것인지 확실하지 않다. 현재 회사 상황이 좋은 것 같지는 않다. 사원들이 참여할 수 있는 개발 프로젝트가 없다. 일경험 3개월이 끝나면, 다른 업체에서 3개월을 추가로 진행할 수 있다. 연장하는 사람도 있고, 그만하는 사람도 있다. 더 좋은 곳을 찾아서 떠나거나, 남아서 실력을 쌓거나 선택이다. 

 

2. 뭐가 문제일까? 어제부터 넥사크로 트랜잭션과 서버 연결이 되지 않고 있음. 

 

다시 시도

1. sysout으로 하나씩 다 찍어보면서 코드 리뷰 중. 

2. 될 때까지 해보자. 

3. 결국 해결하고 퇴근했다. 

1) Controller 

@RequestMapping("nexaConn")
	public void xxx(HttpServletResponse response, HttpServletRequest request) throws PlatformException {
		
		HttpPlatformRequest req = new HttpPlatformRequest(request);
		req.receiveData();
		
		PlatformData pData = req.getData();
		
		DataSet searchDs = pData.getDataSet("searchDs");
		DataSet javaDs1 = pData.getDataSet("Dataset00");
		
		String searchType = searchDs.getString(0, "searchType");
		String keyword = searchDs.getString(0, "searchKeyword");
		
		VariableList vl = pData.getVariableList();	//param
		
		String aa = vl.getString("searchType");
		String bb = vl.getString("keyword");
		
		System.out.println("searchType :" + aa);
		System.out.println("keyword :" + bb);
		
		//map 으로 묶어서 넣어주라고!!
		Map<String, Object> paramMap = new HashMap<>();
		paramMap.put("searchType", aa);
		paramMap.put("keyword", bb);
		
		List<Map<String, Object>> list = sqlSession.selectList("SampleMapper.selectSampleList2", paramMap);
		
		DataSet ds = new DataSet("javaDs1");
		System.out.println("확인해보자 : " + ds);
		
		ds.addColumn("seq", DataTypes.INT, 100);
		ds.addColumn("name", DataTypes.STRING, 100);
		ds.addColumn("id", DataTypes.STRING, 100);
		ds.addColumn("subject", DataTypes.STRING, 100);
		
		for(int i = 0; i < list.size(); i++) {
			int row = ds.newRow();
			ds.set(row, "seq", list.get(i).get("SEQ"));
			ds.set(row, "name", list.get(i).get("MEM_NAME"));
			ds.set(row, "id", list.get(i).get("MEM_ID"));
			ds.set(row, "subject", list.get(i).get("BOARD_SUBJECT"));
		}
		
		PlatformData pd = new PlatformData();
		pd.addDataSet(ds);
		
		HttpPlatformResponse res = new HttpPlatformResponse(response, req);
		res.setData(pd);
		res.sendData();
	}

 

2) Mapper

<select id="selectSampleList2" parameterType="hashMap" resultType="hashMap">
    SELECT 
	     seq
	    ,mem_name
	    ,mem_id
	    ,board_subject
    FROM board_study
    WHERE 1=1 
    <if test="keyword != null and keyword != ''">
      <choose> 
        <when test="searchType == 'name'">
			and mem_name like '%'||#{keyword}||'%'
		</when>
		<when test="searchType == 'subject'">
			and board_subject like '%'||#{keyword}||'%'
		</when>
		<when test="searchType == 'content'">
			and board_subject like '%'||#{keyword}||'%'
			or board_content like '%'||#{keyword}||'%'
		</when>
      </choose>
    </if>
    ORDER BY seq ASC
  </select>

 

iBATIS 개념

1. ibatis는 mybatis 태그를 다 분리시키는 느낌.

2. ibatis는 if문을 is로 시작한다. 

<isEqual property = "searchType" compareValue="name">

and...

</isEqual>

<isNotEqual></isNotEqual>

 

<if test = "searchType != ''"></if> 

 

#{aaa} 대신 #aaa#, $sss$ 

 

type 대신 resultClass를 쓴다. ibatis 

 

ibatis와 mybatis의 차이는 간단하게 얘기해서 유연함의 차이랄까 

mybatis는 ibatis의 후속작으로 이름이 변경된 것이다. 

 

잊지 말자

//map 으로 묶어서 넣어주라고!!
		Map<String, Object> paramMap = new HashMap<>();
		paramMap.put("searchType", aa);
		paramMap.put("keyword", bb);
		
		List<Map<String, Object>> list = sqlSession.selectList("SampleMapper.selectSampleList2", paramMap);

잊지 말자. 이것 때문에 하루를 날렸다. 

반응형