基于ssm中dao接口@Param注解的用法
@Param 注解的用處:為了接口中方法的形參與xml文件中sql語句中的條件參數(shù)綁定
1.接口方法只有一個參數(shù)
完全沒必要使用@Param注解
例:
public interface PaperDao { Paper queryById(long id); }
此時相應(yīng)的xml文件中,#{}中可以填寫任意名稱
<select id="queryById" parameterType="long" resultMap="resultMap1"> SELECT paper_id,name,number,detail FROM paper WHERE paper_id=#{id} </select>
2.接口方法有多個參數(shù)
推薦使用@Param注解進(jìn)行參數(shù)綁定
例:
public interface PaperDao { Paper queryById(@Param("id") long id,@Param("name") String name);}
xm文件:
<select id="queryById" parameterType="long" resultMap="resultMap1"> SELECT paper_id,name,number,detail FROM paper WHERE paper_id=#{id} AND name=#{name} </select>
補(bǔ)充:SSM整合過程關(guān)于@Param注解使用的一些細(xì)節(jié)
1.首先先聲明一下該注解的功能,就是給參數(shù)進(jìn)行命名來找到對應(yīng)參數(shù),
舉個例子(例如在Mybatis的XXXMapper.xml文件中針對某個sql語句 比如根據(jù)id來查詢某個實(shí)體,那么假如我們傳入的參數(shù)列名為id,但是實(shí)體類的column確實(shí)userID,這時候我們可以將參數(shù)就行命名為userID,
這時候我們就可以根據(jù)這個命名找到該參數(shù),類似于該參數(shù)的一個“id”的感覺,這樣就可以將參數(shù)正確的注入sql語句中。
例如:
public int getUserDetail(@Param("userId") int id); //這里我們就可以利用#{userId}來獲取到id的值 在執(zhí)行sql語句時候
還有一個好處就是使用該注解來聲明參數(shù)時,使用#{}和KaTeX parse error: Expected 'EOF', got '#' at position 25: …會報錯,但是不使用的話就只能用#̲{}(一般多數(shù)情況都是#{},…${}會產(chǎn)生sql注入的問題。
但是這里我總結(jié)一個我用這個注解時候遇到的一個很坑的問題,就是在你調(diào)用某個帶有@Param注解的函數(shù)的時候,傳參數(shù)的時候就會報錯,這點(diǎn)需要注意
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Java ArrayList add(int index, E element)和set(int index, E el
今天小編就為大家分享一篇關(guān)于Java ArrayList add(int index, E element)和set(int index, E element)兩個方法的說明,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10Java LinkedHashMap 底層實(shí)現(xiàn)原理分析
LinkedHashMap繼承自HashMap實(shí)現(xiàn)了Map接口?;緦?shí)現(xiàn)同HashMap一樣,不同之處在于LinkedHashMap保證了迭代的有序性。其內(nèi)部維護(hù)了一個雙向鏈表,解決了 HashMap不能隨時保持遍歷順序和插入順序一致的問題。2021-05-05使用eclipse + maven一步步搭建SSM框架教程詳解
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三個開源框架整合而成,常作為數(shù)據(jù)源較簡單的web項(xiàng)目的框架.這篇文章主要介紹了eclipse + maven搭建SSM框架 ,需要的朋友可以參考下2017-11-11Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之二叉堆
二叉堆是一種特殊的堆,其實(shí)質(zhì)是完全二叉樹。二叉堆有兩種:最大堆和最小堆。最大堆是指父節(jié)點(diǎn)鍵值總是大于或等于任何一個子節(jié)點(diǎn)的鍵值。而最小堆恰恰相反,指的是父節(jié)點(diǎn)鍵值總是小于任何一個子節(jié)點(diǎn)的鍵值2022-02-02