2009-03-24 1 views
4

저는 현재 일부 pojos를 반환하기 위해 ibatis를 사용하고 있으며 모든 것이 훌륭하게 작동합니다.
내 질문입니다 : 테이블에서 3 행을 반환해야하고, 그것을 위해 pojo를 만들고 싶지 않습니다. 난 그냥 쿼리를 실행하고 3 값을 얻을 싶어요. 거기에 대한 특별한 자바 객체를 만들지 않고 이것을 할 수있는 쉬운 방법이 있습니까?ibatis 반환 값

+0

queryForList()를 사용하여 HashMap을 반환 할 수있는 방법이 있습니까? 그게 내 병거가없는 줄이야? 나는 googlesearhs를했고 물건을 시험해 보았습니다. 그러나 제 XML은 쓰지 않는 것 같아요. – Nick

답변

4

에서 IBatis.NET 우리는 쿼리에서 하나 이상의 값이 필요할 때 Hashtable을 사용합니다.

<resultMap id="ResultMap1" class="Hashtable"> 
     <result column="FirstName" property="FirstName" type="string" /> 
      <!-- shows up as "FirstName" in the Hashtable --> 
     <result column="LastName" property="LastName" type="string" /> 
      <!-- shows up as "LastName" in the Hashtable --> 
</resultMap> 
+0

내가 추측하는 그게 전부 야. 이것은 resultClass = "HashMap"또는 그와 비슷한 것으로 설정되어 있습니까? 나는 resultset = "int"를 사용했지만, 하나의 값에 대해서만 작동하며, 세 개가 필요합니다. – Nick

+0

첫 번째 오류 : 요소 유형 "결과"에 대해 특성 "유형"을 선언해야합니다. 나는 그것을 수정하기 위해 요소에서 type = "string"을 제거했습니다. 두 번째 오류는 Hashtable이 인식되지 않았기 때문에 HashTable을 "java.util.HashMap"으로 수정하여 수정되었습니다 ... – Nick

+0

이제는 선택을 믹스에 추가 할 때까지 오류가 발생하지 않습니다. 그럼 난 "클래스를 초기화 할 수 없습니다 원인. : java.lang.ClassNotFoundException가 : ResultMap1"얻을 사업자의 [코드] <선택 ID = "selectData"resultClass를 = "ResultMap1"> \t SELECT FNAME, LNAME 이름 = #을 로그인 # [/ code] – Nick

0

나는 당신이 원하는 것을하기위한 어떠한 방법도 모른다. iBATIS의 특정 목적은 관계형 모델을 클래스에 맵핑하는 것을 자동화하는 것입니다.

당신이 무엇을 하려는지 확실하지 않지만, 의미있는 데이터가 있다면, 개체가 수명이 짧더라도 어떤 종류의 개체에 매핑 할 수 있어야합니다. 귀하의 쿼리에 의해 가져온 값을 기반으로 일부 논리가 필요하다고 생각합니까? 그렇다면 새로운 POJO를 생성하고 쿼리를 매핑 한 다음 현재 위치가 아닌 새로운 POJO로 로직을 이동하십시오. 이렇게하면 코드가 훨씬 깨끗하고 유지 관리가 쉬워집니다.

클래스에 매핑하지 않고 원시 데이터를 끌어 오려고하는 경우 디자인을 다시 살펴야 할 수도 있습니다.

(I 그건 당신이 찾고있는 해답이 아니다 알고있다... 죄송합니다.) (이 필드의 순서를 유지하려는 경우의 LinkedHashMap)

+0

내가 원했던 대답이 아니었지만 감사했습니다. 전 데이터베이스를 다루므로 전체 디자인 관리가 필요하지 않습니다. – Nick

+0

대부분 프로젝트의 99 %가 데이터베이스에서 매핑 된 pojos를 가지고 있거나 가지고있을 것입니다. 그러나 데이터베이스를 제공하기 위해서는 많은 목적으로 bs pojos를 많이 만들지 않고 많은 bs 쿼리가 필요합니다 . – Nick

+0

비 노아 안토니 (Binoj Antony)에서 필요한 답변을 얻었 기 때문에 다행입니다. 나는 내 대답을 쓸 때 짜증스럽게 설교를하고있는 것처럼 느꼈다. . . 나는 '내가 어디서 작업했는지를 상상할 수 없다.'라는 글을 쓰기 시작했다. – Ickster

0

당신은 java.util.HashMap에에 결과를 매핑 할 수 있습니다.