Mybatis中@Param的用法和作用
用注解來簡化xml配置的時候,@Param注解的作用是給參數命名,參數命名后就能根據名字得到參數值,正確的將參數傳入sql語句中
我們先來看Mapper接口中的@Select方法
package Mapper; @Mapper public interface Mapper { @Select("select s_id id,s_name name,class_id classid from student where s_name= #{aaaa} and class_id = #{bbbb}") public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id); @Delete...... @Insert...... }1、@Select(……)注解的作用就是告訴mybatis框架,執行括號內的sql語句
2、s_id id,s_name name,class_id classid? 格式是 字段名+屬性名,
例如s_id是數據庫中的字段名,id是類中的屬性名
這段代碼的作用就是實現數據庫字段名和實體類屬性的一一映射,不然數據庫不知道如何匹配
3、where? s_name= #{aaaa} and class_id = #{bbbb} ,表示sql語句要接受2個參數,一個參數名是aaaa,一個參數名是bbbb;
如果要正確的傳入參數,那么就要給參數命名,因為不用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得到參數值了。
5、如果傳入的參數是基本類型參數和實體類對象。
public List<student> selectuser(@Param(value = "page")int pn ,@Param(value = "st")student student);<select id="selectuser" resultType="com.user.entity.student">SELECT * FROM studentwhere sname like concat(concat("%",#{st.sname}),"%")LIMIT #{page} ,5 </select>?
總結
以上是生活随笔為你收集整理的Mybatis中@Param的用法和作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DNF游戏私服搭建过程
- 下一篇: Confluence 6 在 Apach