iliiliilil
394
2019-05-19 14:31:47
2
140

List<String>을 myBatis랑 연동된 xml에서 꺼내쓰는 법!!! 도와주세요ㅠㅠㅠ




for (List<String> testList : partitionTestList) {
				HashMap paramMap = new HashMap();
				paramMap.put("testList", testList);
				paramMap.put("vo", vo);
				
				dao.insert(paramMap);
				
			}


이렇게 된 코드를 보내서


insert into 
		<include refid=""/>			
			(val1, val2, val3, val4)
		values
		<foreach item="val1" index="index" collection="testList" open="" separator="," close="">	
			( #{vo.val5}, #{val1}, now(), #{val2}, #{val3}, #{val4})
		</foreach>


이렇게 컬렉션에서 쓰는데 문제가 있습니다


testList에는 원래 컬럼값이 1개만 들어가서 전에는 문제가 없었는데 이젠 컬럼값이 늘어났거든요ㅠㅠ

예를 들자면

전: testList = 온도1, 온도2, 온도3, 온도4..

후:testList = 온도1, 시간1, 시간2, 시간3 // 온도2, 시간2, 시간2 // 온도3, 시간3, 시간3

이런식으로 ㅜㅜ 그래서 코드를 고치지 않으면 DB에 값이 이상하게 들어가요..

온도가 2개짜리면 2줄이 입력되어야 하는데 testList=[1,2,3,4,1,2,3,4] 이런시긍로 담겨있어서 총 8줄이 들어가요 ㅠㅠ


머리를 굴려봤는데 저 에러를 해결하려면

List<String>에 값이 [1,2,3,4], [5,6,7,8] 이렇게 담겨야 될 것 같고 (지금은 [1,2,3,4,5,6,7,8]이렇게 담김)

그러려면 for (List<String> testList : partitionTestList) <- 이부분을 뭔가 수정해줘야 할 것 같은데

아니면 xml에서 컬렉션 가져오는 부분을 수정하거나...

감이 안 잡히네요ㅠㅠㅠ 도와주세요ㅠㅠㅠㅠㅠ




0
0
  • 답변 2

  • 돌갤여신나나미
    713
    2019-05-19 17:11:51

    클래스를 하나 만들어서 리스트로 굴리는건 어떠세요?


    class myClass {
    
      int 온도
    
      int 시간
    
    }


    대충 이런식으로 클래스 만들어놓고 List<myClass> 넣고 쓰시고 sql에서 {vo.온도}, {vo.시간} 이렇게 불러서 쓰시면 편할것같아요

    0
  • iliiliilil
    394
    2019-05-19 18:05:12

    감사합니다ㅠㅠㅠ

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