전자정부 3.7 ibatis -> Mybatis 변환일지 1탄

2018. 4. 6. 15:13IT개발/iBatis & MyBatis

반응형

ibatis -> mybatis 변경 요약

ibatis

Mybatis

<isEqual prepend="AND" property="searchConditioncompareValue="1">

 TEST = #searchCondition#

</isEqual>

<if test="searchCondition== 1">

AND TEST = #{searchCondition}

</if>

<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap" />

Mybatis-config.xml 파일내에 이동하여 반드시 정의

<configuration>

<typeAliases>

<typeAlias alias="egovMap" type="egovframework.rte.psl.dataaccess.util.EgovMap" />

</typeAliases>

</configuration>

<sqlMap namespace="SysLogDAO">

</sqlMap>

<mapper namespace="SysLogDAO">

</mapper>

<resultMap id="SysLogVO"class="egovframework.com.sym.log.lgm.service.SysLog">

<resultMap id="SysLogVOtype="egovframework.com.sym.log.lgm.service.SysLog">

parameterClass  ,  resultClass

parameterType   , resultMap

#something#  , $something$

#{something}  ${something}

<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

columnIndex="8“
columnIndex=“9“
columnIndex=“10“

….

등으로 검색하여 일괄 삭제하는게 빠름

( xml파일이 있는 폴더를 지정하여 ex) Ctrl + H => Selected Resources )

 삭제해야함더 이상 안씀 , 아래와 같이 맵핑을 하삼.

<result property="userSe" column="userSe"/>



1. mybatis 문법으로 변환(마이그레이션 도구가 있다고 했는데 그당시 모르고 그냥 노가다로 변경함...ㅠㅠ)

  1.1. replace하기(editor plus에서 진행하면 수월)

      - 줄끝공백 제거하기

      -  #          ->   #{    : No정규식 변환

      -  #\{$    ->      }   : 정규식 변환 

      -  #\{\+    ->     }\+   : 정규식 변환 

      -  #\{\)    ->     }\)   : 정규식 변환 

      -  #\{    ->      }     : 정규식 변환(띄어쓰기 있음! 주의) 


  1.2. 태그변환하기

      ●  isEqual ->  if 변경

before 

 <isEqual prepend="AND" property="searchCondition" compareValue="1"></isEqual>

 after 

 <if test="searchCondition== '1'"></if>


2. mybatis-config.xml내 설정정보 추가

  2.1. typeAlias 옮기기

  2.2. mapper resource 정의하기


3. 자바레이어 변경사항

● 추상DAO클래스 의 부모 클래스 변경 (EgovAbstractDAO -> EgovAbstractMapper)

before 

 public abstract class EgovComAbstractDAO extends EgovAbstractDAO{

 after 

 public abstract class EgovComAbstractDAO extends EgovAbstractMapper{


● 호출 메소드명 변경(selectMap - > selectOne )

 before 

 public int selectSampleListTotCnt(SampleDefaultVO searchVO) {

return (Integer) selectMap("selectSampleListTotCnt", searchVO);

}

 after 

 public int selectSampleListTotCnt(SampleDefaultVO searchVO) {

return (Integer) selectOne("selectSampleListTotCnt", searchVO);

}

● 호출 메소드명 변경(selectByPk - > selectOne )

 before 

 public BoardMasterVO selectNotUsedBdMstr(BoardMasterVO vo) throws Exception {

return selectByPk("BBSAttributeManageDAO.selectNotUsedBdMstr", vo);

}

 after 

 public BoardMasterVO selectNotUsedBdMstr(BoardMasterVO vo) throws Exception {

return selectOne("BBSAttributeManageDAO.selectNotUsedBdMstr", vo);

}


● 호출 메소드명 변경(list - > selectList )

before 

 public List<BoardMasterVO> selectNotUsedBdMstrList(BoardMasterVO vo) throws Exception {

return (List<BoardMasterVO>) list("BBSAttributeManageDAO.selectNotUsedBdMstrList", vo);

}

 after 

 public List<BoardMasterVO> selectNotUsedBdMstrList(BoardMasterVO vo) throws Exception {

return selectList("BBSAttributeManageDAO.selectNotUsedBdMstrList", vo);

}


참고자료:  

https://github.com/mybatis/ibatis2mybatis

http://expert0226.tistory.com/297

반응형