mybaits 多個參數傳入用#{0,1,....}或者@Param註釋

Dao層定義如下:

public interface CompanyMemberRelReadDao {


CompanyMemberRel getCompanyMemberRel(Integer companyId, Integer memberId);

這樣子的話,sql的配置如下:

<mapper namespace="com.tsb.dao.read.CompanyMemberRelReadDao">

<resultMap id="companyMemberRelResult" type="CompanyMemberRel">

</resultMap>


<select id="getCompanyMemberRel" resultMap="companyMemberRelResult">

select * from company_member_rel where companyId = #{companyId}

and memberId = #{memberId}

</select>

</mapper> 

這樣mybaits是找不到 companyId,也就是識別不了 #{companyId}

寫成如下才可以

<mapper namespace="com.tsb.dao.read.CompanyMemberRelReadDao">

<resultMap id="companyMemberRelResult" type="CompanyMemberRel">

</resultMap>


<select id="getCompanyMemberRel" resultMap="companyMemberRelResult">

select * from company_member_rel where companyId = #{0}

 and memberId = #{1}

</select>

</mapper> 


如果要寫成第一種形式,那麼dao層需要增加@Param

public interface CompanyMemberRelReadDao {


CompanyMemberRel getCompanyMemberRel(@Param("companyId") Integer companyId, @Param("memberId") Integer memberId);

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章