value
: 取值,要麼使用原生sql
,要麼使用jpql
nativequery
:表示是否採用原生sql
,諸如select * from tablename
1、使用:形參名
示例:單個形參的情況
多個形參的情況:
2、使用?數值
,數值表示形參位置,1
表示第乙個形參,依次內推
示例:單個形參的情況:
多個形參的情況:
特殊情況:數值也可不寫,若不寫具體的數值,預設是從1
開始遞增,如下圖示例:
3、使用@param("引數名")
+:引數名
通常使用@param
註解都是在多個形參的情況下使用
4、獲取實體類名稱,使用#
使用@query
註解實現刪、改、查、增的示例,如下所示:
@modifying
@transactional
@query
(value =
"delete from user where id = ?1"
)void
deletebyuserid
(integer id)
;
?
後面的數值1
,表示第乙個形參的值,以此類推,如果方法有多個形參,數值也會依次遞增,特殊情況,數值也可不寫,若不寫具體的數值,預設是從1
開始遞增
@modifying
@transactional
@query
("update user set email = ?1 where id = ?2"
)void
updateuser
(string email,integer id)
;
@query
(value =
"select * from tb_user where email like concat('%',?2,'%') and username like concat('%',?1,'%') "
,nativequery =
true
)user findbyusernameandemail
( string username, string email)
;
@modifying
@transactional
@query
(value =
"insert into tb_user(email,id_card,username,wage) values (:email,:idcard,:username,:wage)"
,nativequery =
true
)void
insertuser
(string email,string idcard,string username,double wage)
;
Query註解簡單使用
nativequery true 本地查詢,就是使用原生的sql語句,直接查詢資料表名,而不是實體類物件 根據資料庫的不同,在sql的語法或結構方面可能有所區別 進行查詢資料庫的操作。不設定nativequery true 時,sql語句中的表名和欄位名時實體類名和實體類中的欄位名,兩種方式作用一樣...
springData學習(二) Query註解詳解
query註解查詢適用於所查詢的資料無法通過關鍵字查詢得到結果的查詢。這種查詢可以擺脫像關鍵字查詢那樣的約束,將查詢直接在相應的介面方法中宣告,結構更為清晰,這是spring data的特有實現。1.查詢id最大的資料 需要注意的是from後面跟的是與表名相對應的實體類名 同時返回值不能寫 retu...
spring常用註解詳情
用註解來向spring容器註冊bean。1 repository標註在持久層,即dao,用於標註資料訪問。2 service標註在業務層,即service,用於標註業務邏輯。3 controller標註在控制層。4 component當不明確這個類屬於那個層的時候,可以使用 component進行標...