日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dao传递类参数 mybatis_MyBatis DAO层传递参数到mapping.xml 几种方式

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dao传递类参数 mybatis_MyBatis DAO层传递参数到mapping.xml 几种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Dao層傳遞參數到mapping.xml文件的幾種方式:(Mybatis傳值總結)

第一種:傳遞單個參數

Dao層Code片段:

/**

*?根據articleId查詢XXXX詳情.

*

*?@param?articleId

*?@return?{@link?CmsProductArticle}

*/

public?CmsProductArticle?getCmsProductArticleByArticleId(Long?articleId);

Mapping片段:

SELECT

*

FROM

tableA?a,?tableB?b

WHERE

a.article_id?=?b.article_id

and?a.del_flag?!=?2

and?b.article_id?=?#{articleId}

傳遞單個參數時直接將parameterType設置成你傳入的參數類型(Long),直接用“#{}”獲得參數,參數名必須與Dao層參數名一致。

resultType是SQL查詢結果返回的類型,Dao層接口返回是實體類,所以這里的resultType是實體類的路徑(按住ctrl鍵,鼠標點擊路徑時可以直接進入實體類時路徑正確)

第二種:傳遞多個參數

1,以注解標記

Dao層Code片段:

/**

*?查詢companyId是否存在.

*

*?@param?companyId

*?@param?imgId

*?@return?int

*/

public?int?queryCompanyIdAndImgIdIsExist(@Param("companyid")?Long?companyId,?@Param("id")?Long?imgId);

Mapping片段:

select

count(1)

from?table_img?img

where?img.company_id?=?#{companyid}

and?img.id?=?#{id}

此時不需要寫parameterType,但是注意“#{}”內的參數名必須跟你在Dao層中注解@Param("")內定義的名稱一致。

2,直接傳遞參數

Dao層Code片段:

/**

*?查詢companyId是否存在.

*

*?@param?companyId

*?@param?imgId

*?@return?int

*/

public?int?queryCompanyIdAndImgIdIsExist(?Long?companyId,??Long?imgId);

Mapping片段:

select

count(1)

from?table_img?img

where?img.company_id?=?#{0}

and?img.id?=?#{1}

#{0}與#{1}是你在Dao里的參數順序

3,以Map傳遞參數

實現類Code片段:

Map?searchCondition?=?new?HashMap<>();

searchCondition.put("categoryId",?categoryId);

searchCondition.put("status",?status);

List?cmsProductArticles?=?cmsProdcutArticleDao.getCmsProductArticles(searchCondition);

Dao層Code片段:

/**

*?根據搜索條件查詢產品模板集.

*

*?@param?searchCondition

*?@return?List

*/

public?List?getCmsProductArticles(Map?searchCondition);

Mapping片段:

SELECT

*

FROM

table?a,?table?b

WHERE

a.article_id?=?b.article_id

and?a.del_flag?!=?2

and?a.category_id?=?#{categoryId}

and?a.status?=?#{status}

#{categoryId}、#{status}對應你在Map里面的Key

第三種:以實體類傳遞

Dao層Code片段:

/**

*?更新.

*

*?@param?cmsProductArticle

*?@return

*/

public?void?updateCmsProductArticle(CmsProductArticle?cmsProductArticle);

Mapping片段:

UPDATE?table

SET

category_id?=?#{categoryId},?supply_type?=?#{supplyType},?pay_type?=?#{payType},?pay_value?=?#{payValue},?status?=?#{status}

WHERE

article_id?=?#{articleId}

and?del_flag?!=?2

#{categoryId}等對應實體類中屬性。

天津雍博科技有限責任公司

歡迎大家訪問www.yongbosoft.com ,崇尚技術,為您提供完美產品,優質服務!

總結

以上是生活随笔為你收集整理的dao传递类参数 mybatis_MyBatis DAO层传递参数到mapping.xml 几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。