Mybatis中的@param注解的用法


 

用注解來簡化xml配置的時候,@Param注解的作用是給參數命名,參數命名后就能根據名字得到參數值,正確的將參數傳入sql語句中 

 

下午在寫轉賬操作時,dao接口中的方法

@Update(update account set money = money - #{money}  where id = #{id})

void  updateAccount(int id,double money);

在剛開始總是出現500的錯誤,也就是服務器端錯誤,錯誤為:Parameter 'money' not found. Available parameters are [arg1, arg0, param1, param2]

而將void  updateAccount(int id,double money);改為 void  updateAccount(@param( " id ")int id,@param( " money ")double money);進行配置時就可完美運行

2.格式是 字段名+屬性名,例如@param( " id ")是數據庫中的字段名,id是類中的屬性名,我這里只是命名重復了,

    這段代碼的作用就是實現數據庫字段名和實體類屬性的一一映射,不然數據庫不知道如何匹配

 id

3.update account set money = money - #{money}  where id = #{id} 表示sql語句要接受2個參數,一個參數名是money,一個參數名是id,如果要正確的傳入參數,那么就要給參數命名,因為不用xml配置文件,那么我們就要用別的方式來給參數命名,這個方式就是@Param注解

 

4.在方法參數的前面寫上@Param("參數名"),表示給參數命名,名稱就是括號中的內容

public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id); 
給入參 String name 命名為aaaa,然后sql語句....where  s_name= #{aaaa} 中就可以根據aaaa得到參數值了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM