动态SQL选择(MyBatis)返回Map <string,object =“”> </string,>

时间:2013-11-26 21:17:27

标签: java select orm mybatis ibatis

我在mybatis文档和inet中搜索过。但是找不到溶剂。

我的目标是: 从myBatis动态SQL选择return wether

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

而不创建pojo作为数据库表的表示。

应该看起来像:

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的方法:

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

1 个答案:

答案 0 :(得分:0)

教程中的第一个示例显示了返回的简单集合的示例。 Here

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

这句话是   调用selectPerson,接受int(或Integer)类型的参数,和   返回由映射到行值的列名键控的HashMap。

在此hashmap中,Key-Value对是“ColumnName” - “Column's Value”对。没有使用pojo。您的示例代码对我来说似乎是正确的,如果您有任何错误,可以打印错误。