damuri
240
2021-03-08 15:26:50 작성 2021-03-08 15:27:07 수정됨
7
179

IndexOutOfBoundsException 에러 질문입니다..



구글에서 찾아보니 이 에러가 뭐 배열이 안맞거나 크기가 안맞아서 그렇다는거같은데 짐작가는부분이 enum을 타입으로 줘서 그런건지 해결 방법이 뭔지 궁금합니다..

컨트롤러와 서비스를 한번 올려보겠습니다.


controller



service


enum

이거에 대해서 찾아보는데 3일정도 걸렸지만 찾지못하겠습니다.. 아시는분 계신다면 좀 부탁드리겠습니다.

0
  • 답변 7

  • htofu
    220
    2021-03-08 15:29:12

    로그인 하려는 파라미터를 갖고 db에서 조회해보면 답이 바로 나올거에요.


  • 오후
    2k
    2021-03-08 15:35:39

    https://lob-dev.tistory.com/entry/Mybatis%EC%9D%98-IndexOutOfBoundsException

  • 연습용더미1
    488
    2021-03-08 15:41:08

    쿼리문으로 불러오는 데이터가 2 개 이상인거죠. db의 데이터를 확인해보세요. 아이디와 패스워드 둘 다 만족하는 데이터가 2 개 이상 불러와지는겁니다. 1 이 나와야 하는 상황에서 2가 나오는거죠.

  • damuri
    240
    2021-03-08 16:01:41
    SELECT USER_ID, USER_PW
    FROM TB_USER
    WHERE USER_ID = 'test12'
    AND USER_PW = 'test12'
    디비에서 검색하면 잘 들어갑니다.. ;; 그냥 enum사용하지말고 다시 짤까 싶기도하네요..
  • 유리세계
    3k
    2021-03-08 16:09:28

    보통 selectOne 으로 userVO 에 들어갈 데이터 로우가 한 줄이 나와야 하는데,

    두줄 이상이 출력될 경우 해당 에러가 발생합니다


    잘들어가는 것이 문제라기보다는 조회할때 값이 두 줄이기 때문에 에러인 것입니다

    두 줄이면 List<userVO> 인데 userVO에 데이터를 넣을 수는 없잖아요?

  • damuri
    240
    2021-03-08 16:14:30

    아.. 전  아이디 비밀번호 묶어서 하나라고 생각했었는데 

    하나의데이터가아니라 아이디 비밀번호 해서 리스트로 해야하는군요..

    해결 됐네요 너무 감사합니다. 

  • damuri
    240
    2021-03-08 16:14:52

    댓글달아주신 다른분들 모두 감사드립니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.