91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

淺談為什么要使用mybatis的@param

發布時間:2020-09-29 20:40:17 來源:腳本之家 閱讀:190 作者:Caeser110 欄目:編程語言

起因

我們先來看一個報錯

淺談為什么要使用mybatis的@param

報錯很簡單,參數 start 沒找到。

我是在實現一個 API 接口時發現了一個問題,當我不使用 @Param 標簽時,mybatis 是不認識哪個參數叫什么名字的,盡管我定義了 (long start,long end) 它仍然不認識。在這個接口上,我希望根據前端傳來的參數,查找指定范圍的數據,例如:我想搜索第二頁的數據,假設一頁20個,那么搜索的范圍就是21-40,于是就會調用接口中的 getTypeListByRange 來查找對應 mapper 的 SQL 語句。

public interface TypeDao {
 Type getTypeByid(long id);
 List<Type> getTypeListAll();
 List<Type> getTypeListByRange(long start,long end);
}

解釋 @Param

org.apache.ibatis.annotations.Param 當映射器方法需要多個參數時,這個注解可以被用于:給映射器方法中的每個參數來取一個名字。否則,多參數將會以它們的順序位置和SQL語句中的表達式進行映射,這是默認的。
語法要求:若使用@Param(“id”),則SQL中參數應該被命名為:#{id}。

使用

Dao 層

import org.apache.ibatis.annotations.Param;

import com.caeser.upmovie.entity.Type;

public interface TypeDao {
 Type getTypeByid(long id);
 List<Type> getTypeListAll();
 List<Type> getTypeListByRange(@Param("start")long start,@Param("end")long end);
}

Mapper

<select id="getTypeListByRange"  resultType="com.caeser.upmovie.entity.Type">
 SELECT
 ID,
 NAME,
 CREATE_TIME,
 UPDATE_TIME
 FROM
 upm_type
 LIMIT 
  #{start},#{end};
 </select>

單元測試

public class TypeTest extends BaseTest{
 @Autowired
 private TypeDao typeDao;
 
 @Test
 public void testDao(){
 List<Type> typeList1=typeDao.getTypeListByRange(1, 4);
 for(int i=0;i<typeList1.size();i++){
  System.out.println(typeList1.get(i).getName());
 }
 }
}

結果

淺談為什么要使用mybatis的@param

總結

當 Dao 層傳遞參數為多個參數時,為了規范,必須使用 @Param 給參數命名。這里需要注意,使用的是 mybatis 的 param 來命名。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

勃利县| 乌恰县| 寿阳县| 南京市| 吉木乃县| 岳阳县| 巴马| 东乌| 永福县| 万年县| 西青区| 宁强县| 溧阳市| 理塘县| 项城市| 曲阜市| 汉寿县| 丽水市| 芒康县| 达拉特旗| 尉氏县| 象州县| 屯昌县| 罗源县| 洞头县| 德格县| 田林县| 贵南县| 孝义市| 巴楚县| 陆良县| 长垣县| 轮台县| 台南市| 定西市| 大渡口区| 辽阳县| 庆云县| 宣恩县| 兴城市| 乌兰察布市|