有时侯不想创建javabean,或者污染现有的javaBean对象,就需要返回Map类型的数据对象;
1)最简单的方法就是将查询到的字段,使用""进行引起来,这样就可以返回map类型了;
2)或者写成ResultMap,来进行字段的映射也是可以的;
例子如下:
<select id="queryProductInfo" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
select a.marketproduct_code "productCode",
a.marketproduct_name "productName",
a.product_class "productClass",
(select t.value_chinese_name from product_base_data t where t.collection_code = 'CPDL' and t.value_code = a.product_class) "productClassName",
a.is_combined "isCombined",
a.combind_relation "packageType",
a.IS_SELF_CARD "isSelfCard",
(select decode(count(1), 0, '0', '1') from package_info t1 where t1.id_marketproduct_info = a.id_marketproduct_info) "hasPackage",
a.is_self_card "productKind",
a.marketproduct_type "productType",
b.least_copy_num "leastInusureAmout",
b.top_copy_num "topInsureAmout",
b.insure_period_lmt_of_mon "periodSetMonth",
b.insure_period_lmt_of_day "periodSetDay",
b.least_accept_insure_age "leastAcceptInusrAge",
b.top_accept_insure_age "topAcceptInsurAge",
a.target_type "targetType",
b.PROFESSION_TYPE "professionType",
b.SPECIAL_PROMISE "specialPromise",
a.version "version"
from marketproduct_info a,marketproduct_rule_param b, technic_product_info c where a.marketproduct_code = #marketproductCode#
and a.version = #version#
and a.id_marketproduct_info = b.id_marketproduct_info(+)
and a.id_technic_product_info = c.id_technic_product_info
</select>
<resultMap id="getItemsResult" class="java.util.HashMap">
<result property="itemName" column="item_name" />
<result property="itemValue" column="item_value" />
</resultMap> <select id="getItems" resultMap="getItemsResult">
select item_name, item_value from item_table
</select>