這似乎沒有我。我知道我可以使用map來從myBatis查詢中返回一組vanilla行,但如何使用原始類型的列表來做到這一點?MyBatis - 原始類型列表
例如如果我有SQL:
select product_price from products
這是否需要resultMap?我試圖使用java.util.ArrayList作爲結果類型,但得到類未找到錯誤。
以類似的方式,我如何將項目列表作爲參數傳遞給查詢。
任何輸入,讚賞文檔的指針。
這似乎沒有我。我知道我可以使用map來從myBatis查詢中返回一組vanilla行,但如何使用原始類型的列表來做到這一點?MyBatis - 原始類型列表
例如如果我有SQL:
select product_price from products
這是否需要resultMap?我試圖使用java.util.ArrayList作爲結果類型,但得到類未找到錯誤。
以類似的方式,我如何將項目列表作爲參數傳遞給查詢。
任何輸入,讚賞文檔的指針。
三分球這樣的:
你會得到它的地圖列表,如果你這樣寫:
<select id="getPrice" resultType="Hashmap">
select product_price from products
</select>
其中關鍵的將是列名。每張地圖將包含一個條目。如果你想要一個ArrayList,那麼你可以編寫一個函數來此地圖轉換爲一個ArrayList:
public List listFromListOfMap (List<Map> listOfMap) {
List<Integer> prices = new ArrayLisyt<Integer>();
for(int i = 0; i < listOfMap.size(); i++) {
Integer value = (Integer)listOfMap.get(i).get("product_price");
prices.add(value);
}
return prices;
}
希望這有助於:)
嘗試使用resultMap的
<resultMap type="java.lang.Long" id="domainsResult">
<result property="" column="product_price"/>
</resultMap>
<select id="getPrice" resultMap="domainsResult">
select product_price from products
</select>
它會給你一個List priceList。
我在resultmap中的
請標記任何合適的答案並關閉此問題。它也會幫助其他人也有類似的問題。 – 2015-10-05 04:21:25
只要聲明resultType
作爲你想要的原始類型,在你的情況下是Long
。它將作爲列表返回。
<select id="getPrice" resultType="java.lang.Long">
select product_price from products
</select>
在映射器界面中,您應該預計會得到一個Long
的列表。
List<Long> getPrice();
嘗試使用下面的代碼片段的結果映射內爲PRODUCT_PRICE列映射 -
<collection property="price" ofType="java.lang.Long">
<result property="price" column="product_price"/>
</collection>
謝謝。原來,如果你簡單地將resultType設置爲Class def,它將給出這些對象的列表(如果你有自定義類)。我想知道原始類型,如果我只是將resultType設置爲java.lang.Integer它會解決。我必須嘗試一下。感謝上面的代碼。 – Joel 2012-02-16 23:55:11