【问题标题】:Dynamic SQL select (MyBatis) return Map<String, Object>动态 SQL 选择 (MyBatis) 返回 Map<String, Object>
【发布时间】:2013-11-27 15:12:32
【问题描述】:

我在 mybatis 文档和 inet 中进行了搜索。但找不到解决办法。

我的目标是: from 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<String, Object> selectRecords(Entry entry);

【问题讨论】:

  • 你的实际问题是什么?
  • 我找不到如何将数据选择到某个集合中。在文档中,我看到我们可以创建表示 db 表的 java 实体并将其用作 resultType。但是我们可以只使用集合作为我们的选择结果吗?

标签: java select orm mybatis ibatis


【解决方案1】:

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

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

这句话是 称为 selectPerson,采用 int(或 Integer)类型的参数,并且 返回由映射到行值的列名键控的 HashMap。

在此哈希图中,键值对是“列名”-“列的值”对。没有使用 pojo。您的示例代码对我来说似乎是正确的,如果有任何错误,您可以打印出来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2020-07-14
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多