mybatis不加@Parm注解報錯的解決方案
我的idea版本2017.3.4,低版本貌似不會加上這個配置,idea高版本會

補(bǔ)充知識:Mybatis傳多個參數(shù)的問題 及MyBatis報錯 Parameter '0' not found. Available parameters are [arg1, arg0, param1 問題
對于使用Mybatis ,傳多個參數(shù),我們可以使用對象封裝外,還可以直接傳遞參數(shù)
對象的封裝,例如查詢對象條件basequery對象
<select id="getProductByProductQuery" parameterType="com.niulande.product.query.BaseQuery" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from pd_product
<include refid="whereSql"/>
</select>
<sql id= "whereSql" >
<where>
<if test="gameCode != null and gameCode != ''" >
and game_type_coding = #{gameCode}
</if>
<if test="goodsTypeId != null">
and goods_type_id = #{goodsTypeId}
</if>
<if test="accId != null">
and account_id = #{accId}
</if>
<if test="delFlag != null">
and del_flag = #{delFlag}
</if>
</where>
limit #{start},#{rows}
</sql>
</mapper>
直接傳遞參數(shù)
例如:
mapper方法
selectByGameIdAndGoodsTypeId(Long gameTypeId, Long goodsTypeId);
對應(yīng)的xml文件方法:
<select id="selectByGameIdAndGoodsTypeId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from pd_game_goods_type_mid
where game_type_id = #{gameTypeId} AND goods_type_id = #{goodsTypeId}
</select>
第一:在select標(biāo)簽后就不再使用parameterType,因為這個標(biāo)簽只能指定一個參數(shù),而兩個參數(shù)及以上的,則不用再使用
第二:在sql語句里面以上的寫法是錯誤的(為了演示執(zhí)行報錯)
會報錯
Parameter '0' not found. Available parameters are [arg1, arg0, param1, param2]
注意這里使用的mybatis的版本號
在MyBatis3.4.4版不能直接使用#{0}要使用 #{arg0}
0是指參數(shù)的索引,從0開始。第一個參數(shù)是0,第二個參數(shù)是1,依次類推
以下正確的寫法:
<select id="selectByGameIdAndGoodsTypeId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from pd_game_goods_type_mid
where game_type_id = #{arg0} AND goods_type_id = #{arg1}
</select>
第三種:
<select id="selectByGameIdAndGoodsTypeId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from pd_game_goods_type_mid
where game_type_id = #{gameTypeId} AND goods_type_id = #{goodsTypeId}
</select>
剛剛說這樣的會報錯。解決辦法,更改mapper方法
加上@Param注解
selectByGameIdAndGoodsTypeId(@Param("gameTypeId")Long gameTypeId, @Param("goodsTypeId") Long goodsTypeId)
以上這篇mybatis不加@Parm注解報錯的解決方案就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中實(shí)例初始化和靜態(tài)初始化的過程詳解
Java代碼初始化塊是Java語言中的一個非常重要的概念。初始化塊負(fù)責(zé)在創(chuàng)建對象時進(jìn)行一些必要的操作,例如設(shè)置對象的初始狀態(tài)、初始化成員變量等。初始化塊被分為實(shí)例初始化塊和靜態(tài)初始化塊兩種類型。本文詳細(xì)介紹了初始化的過程,需要的朋友可以參考下2023-05-05
詳解如何實(shí)現(xiàn)OpenAPI開發(fā)動態(tài)處理接口的返回數(shù)據(jù)
這篇文章主要為大家介紹了OpenAPI開發(fā)動態(tài)處理接口的返回數(shù)據(jù)如何實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Spring Boot集成kubernetes客戶端實(shí)現(xiàn)API操作k8s集群的方案
Kubernetes是一個開源的容器編排平臺,可以自動化在部署、管理和擴(kuò)展容器化應(yīng)用過程中涉及的許多手動操作,這篇文章主要介紹了Spring Boot集成kubernetes客戶端實(shí)現(xiàn)API操作k8s集群,需要的朋友可以參考下2024-08-08
spring使用ehcache實(shí)現(xiàn)頁面緩存示例
這篇文章主要介紹了spring使用ehcache實(shí)現(xiàn)頁面緩存示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02

