2013-11-26 3 views
0

mybatis documentaion 및 inet에서 검색했습니다. 그러나 해결책을 찾을 수 없었습니다.동적 SQL select (MyBatis) 반환지도 <String, Object>

내 목표는 : 데이터베이스 테이블의 표현으로 POJO를 만들지 않고

Map <Strinng (Data Base Column), Object (Database Value)> or 
List<Object> (Database Values) 

거세한 숫양 의 MyBatis에서 동적 SQL을 선택 돌아갑니다.

1) 동적 SQL : 그것은해야

처럼 보이는

<select id="selectRecords" parameterType="Entry" resultType="Map"> 
SELECT 
    <foreach item="column" index="index" collection="columns" separator=","> 
    ${column} 
    </foreach> 
from ${tableName} 
</select> 
내가 넣어

2) 매개 변수 동적 선택 :

public class Entry { 

private String tableName; 
private String[] columns; 

//constructor 
//getters, setters 

}

3) 지도를 반환하는 메소드 :

Map<String, Object> selectRecords(Entry entry); 
+0

실제 문제는 무엇입니까? – Derek

+0

일부 컬렉션에 데이터를 선택하는 방법을 찾을 수 없습니다. 문서에서는 db 테이블 표현의 Java 엔티티를 작성하여 resultType으로 사용할 수 있음을 확인했습니다. 그러나 우리는 선택의 결과로 막 수집을 사용할 수 있습니까? –

답변

0

자습서의 첫 번째 예는 반환되는 간단한 컬렉션의 예를 보여줍니다. Here,

<select id="selectPerson" parameterType="int" resultType="hashmap"> 
SELECT * FROM PERSON WHERE ID = #{id} </select> 

이 명령문은 selectPerson라는 이다 int 형 (또는 정수)의 파라미터를 취하고, 값을 행에 매핑 열 이름에 의해 키가 해시 MAP 반환한다.

이 해시 맵에서 키 - 값 쌍은 "ColumnName"- "Column 's Value"쌍입니다. pojo는 사용되지 않습니다. 귀하의 예제 코드가 나에게 맞는 것처럼 보입니다. 오류가 발생하면 인쇄 할 수 있습니다.