xml에 작성한 쿼리는
<select id="listAll" resultType="MenuVO">
SELECT MENU_ID, MENU_NAME, MENU_PRICE, TO_CHAR(MENU_DATE,'YYYY/MM/DD'), MENU_TEXT, MENU_TYPE
FROM MENU
ORDER BY MENU_ID DESC
</select>
컬럼명으로 결과가 도출되는데
왜
@Data
@Alias("MenuVO")
public class MenuVO {
// 일단 첨부파일은 나중에 보충하자...
private String menuId;
private String menuName;
private Integer menuPrice;
private String menuText;
private String menuDate;
private String menuType;
private String menuImg;
private String menuMaterial;
}
vo에 바인딩이 될까????? 컬럼명의 변수는 언더바를 두는 형식이고 vo의 변수는 카멜케이스인데????
해답은 configuration 설정파일에 있었다.
위와같은 상황에서 자동으로 변환을 해준다.
전자정부 프레임워크의 경우 congifuration 파일에
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
위와같이 작성해준다.
이렇게 하면 DB의 컬럼명은 스네이크, 자바의 필드는 카멜케이스여도 vo를 통해 값을 뽑아올 수 있다.