이건 마이바티스 매퍼에서 내가 실행하려는 쿼리문이야
그리고 저기서 ${gallery_name} 이걸 내가 만들어둔 테이블 alpha로 바꿔서 alpha_post_m/g로 바꿔서 터미널에서 실행해보면
이렇게 나와
내가 의도한대로 나와주고 있는데 막상 인텔리제이에서 프로젝트를 실행시켜보면
순서는 엉망이고
idx도 정수가 아닌 실수로 나오고있어 사진에서는 정수로 나오는데 내가 jsp에서 임시로 변환해준거구
디비에서 내가 만든 변수 idx의 타입 문제라고 생각하려했는데
댓글 목록을 가져오는 쿼리문에서의 idx는 정수로 반환되거든
정리하자면 문제는 두가지야
터미널에서는 제대로 정렬되어 나오는 테이블이 왜 프로젝트 실행을 하면 엉망으로 흐뜨러지는지
또
왜 idx변수는 테이블에서 정수로 나오지만 자바단에서 출력했을때 .0이 붙은 실수로 나오는지
힌트라도 받을수있으면 좋을거같다:)
추가)
인터페이스 townDao를 실행시키는 townService에서 dao의 리턴을 출력해보면
이미 두가지 문제가 발생한채로 반환되는걸 알 수 있어
resultType이 map이잖아 map은 순서가 유지가 안됨
그렇구나 그럼 자바단에서 다시 정렬해주는게 좋을까?
순서가 유지가 안되니까 의미가 없고 list로 받아야지
매퍼 list 반환 방법을 검색해보라는 말이지??
그냥 vo클래스 하나 만든담에 resultType에 해당 vo 클래스 지정해주면 지가 알아서 리스트로 만들어준다
map이 순서 유지가 안댄다면 댓글이 순서대로 정렬되어 나온건 그냥 우연인거야?
터미널 실행은 resultType이 없잖아 당연히 너가 쏜 쿼리대로 나오지 그게 java에서 map으로 변환하는 과정에서 순서가 다시 섞이는거
어레이리스트로 자동으로 반환해줘? 신기하네
실수 출력 문제는 db 컬럼 자료형이 numeric으로 돼 있는거 아닌가 의심스러움
나는 따로 타입 지정을 안해줬거든 디비는 봐도 잘모르겠어서 그런데 @idx int 이건안대더라고타입지정으뢔줘야대?
컬럼 자료형이 실수형이면 캐스팅을 해주면 되긴 할거임 근데 너가 볼 줄 알아야돼 그게 맞는지
컬럼이 내가 만든 변수 @idx자나 저기서 처음 선언 해준거구 그렇다면 위에 적힌 쿼리문 안에서 타입 설정을 해줘야맞는거지? 볼줄알아야한다는건 어떤걸 말하는거야?
db설계할때 뭐로 만들었는지
아아 이제 이해했음 그 소리가 아니구나
미아난대 잘 이해가 안대서 그러는데 내가 만든 테이블에는 idx라는 컬럼이 없었어 그러니까 셀렉문 날릴때 타입지정해줘야하는거아냐?
ㅇㅇ 맞음 사실 mysql안써봐서 한번에 이해 못했음 일단 vo클래스에서 int형으로 받아봐 아마 될거 같은데
그럼 map이라고 해놓은것들을 전부 vo로 적어주고 어레이리스트가 반환대는지 해보면대겠네
고마어:)
mapper 인터페이스에서 List 이렇게 받아주면 될거임
List꺽쇠VO꺽쇠
오 xml에서도 list 제네릭이 대는지 몰랐네
ㄴㄴ 거기 말고 인터페이스나 dao쪽
xml resultType은 com.aaa.bbb.ccc.vo로 해야지