Mybatis 條件查詢 批量增刪改查功能
更新時間:2017年06月21日 11:13:50 作者:番號
這篇文章主要介紹了mybatis 腳本處理語句之條件查詢 批量增刪改查功能,需要的的朋友參考下吧
模糊查詢:
@Select({
"SELECT * FROM account where account like CONCAT('%',#{query},'%') or email like CONCAT('%',#{query},'%')"
})
Account findAccountByAccountOrMail(@Param("query") String query);
批量添加:
@Insert({
"<script>" +
"INSERT INTO company_label(company_id,label_id) values " +
" <foreach collection=\"item\" item=\"item\" index=\"index\" separator=\",\" > " +
" (#{companyId},#{item}) " +
" </foreach>" +
"</script>"
})
void insertLabelForCompany(@Param("companyId") Long companyId,@Param("item") List<Long> item);
批量刪除:
@Delete({
"<script>delete from company_label where company_id = #{companyId} and label_id in " +
"<foreach collection = \"item\" item = \"item\" open=\"(\" separator=\",\" close=\")\">" +
"#{item}" +
"</foreach>" +
"</script>"
})
void removeLabelForCompany(@Param("companyId") Long companyId,@Param("item") List<Long> item);
批量修改:
@Update(value = "<script>" + "update banner b set b.display = #{status} where b.id in "+
"<foreach item = 'item' index = 'index' collection = 'ids' open = '(' separator = ',' close = ')'>#{item}</foreach>" +
"" +
"</script>")
int updateStatus(@Param("status") Long status, @Param("ids") Long[] ids);
批量查詢:
@Select({
"<script>" +
"select * from product where id in" +
"<foreach item = 'item' index = 'index' collection = 'idList' open = '(' separator = ',' close = ')'>#{item}</foreach>" +
"</script>"
})
List<Product> findByIdList(@Param("idList")List<Long> idList);
條件查詢,if里面不僅可以判空,還可以判斷是否滿足某個條件
@Select({
"<script>SELECT * FROM company where 1=1 and parent_id = #{companyId} " +
//平級
"<if test = \"isScanSameLevelValue == 1\">and type = #{type}</if>" +
"<if test = \"isScanSameLevelValue == 0\">and type != #{type}</if>" +
"</script> "
})
List<Company> findCompanyConditional(@Param("isScanSameLevelValue") String isScanSameLevelValue, @Param("isScanParentLevelValue") String isScanParentLevelValue, @Param("companyId") Long companyId, @Param("type") Integer type);
條件查詢:
*/
@Lang(XMLLanguageDriver.class)
@Select({"<script>select DISTINCT p.* FROM `us_product`.`hot_category_surgery` hcs "+
"LEFT JOIN `us_product`.`product` p ON hcs.`product_id` =p.`id`"+
"LEFT JOIN `us_product`.`category_surgery` cs on cs.`product_id` =p.`id`"+
"LEFT JOIN `us_product`.`merchant_product` mp on mp.`product_id` = p.`id`"+
"LEFT JOIN `us_product`.`org_product` op on op.`product_id` =p.`id`"+
"where p.`type` =1 and p.`is_for_sale` =1 "+
" <if test=\"hId != null\"> and hcs.hot_category_id = #{hId} and p.id = hcs.product_id</if>" + //熱門類目id
" <if test=\"categoryId != null\"> and cs.category_id = #{categoryId} and p.id = cs.product_id</if>" + //類目id
" <if test=\"input != null\"> and (p.name like CONCAT('%',#{input},'%') or p.company like CONCAT('%',#{input},'%')) </if> "+ //用戶輸入,包括商品名和店鋪名,模糊
" <if test = \" location != null\"> and p.location like CONCAT('%',#{location},'%') </if> "+ //位置..
" <if test=\"method != null\"> and mp.filter_id = #{method} and p.id = mp.product_id</if> "+ //篩選條件 手術(shù)方式
" <if test=\"org != null\"> and op.filter_id = #{org} and p.id = op.product_id</if> "+ //篩選條件 所屬機構(gòu)
" ORDER BY sale_volume DESC"+
" </script>"
})
List<Product> findProductFromLocal(@Param("hId")Long hId,@Param("categoryId")Long categoryId,@Param("input")String input,@Param("method")Long method,@Param("org")Long org,@Param("location")String location);
以上所述是小編給大家介紹的Mybatis 條件查詢 批量增刪改查功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot實現(xiàn)PDF轉(zhuǎn)圖片的代碼示例
在本文中,我們使用SpringBoot演示了如何將PDF文件轉(zhuǎn)換為一張或多張圖片,這些示例演示了如何使用Java編程語言與其他開源技術(shù)集成,以實現(xiàn)各種文件格式之間的轉(zhuǎn)換,感興趣的小伙伴跟著小編一起來看看吧2024-08-08
HttpClient HttpRoutePlanner接口確定請求目標路由
這篇文章主要為大家介紹了使用HttpClient HttpRoutePlanner接口確定請求目標路由,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
Hibernate實現(xiàn)批量添加數(shù)據(jù)的方法
這篇文章主要介紹了Hibernate實現(xiàn)批量添加數(shù)據(jù)的方法,詳細分析了基于Hibernate執(zhí)行批量添加操作的具體步驟與相關(guān)實現(xiàn)代碼,需要的朋友可以參考下2016-03-03
關(guān)于MyBatis結(jié)果映射的實例總結(jié)
結(jié)果集映射主要是為了解決屬性名和類型名不一致的問題,下面這篇文章主要給大家介紹了關(guān)于MyBatis結(jié)果映射的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-05-05
Spring Boot使用Redisson實現(xiàn)滑動窗口限流的項目實踐
滑動窗口限流是一種流量控制策略,用于控制在一定時間內(nèi)的請求頻率,本文主要介紹了Spring Boot使用Redisson實現(xiàn)滑動窗口限流的項目實踐,具有一定的參考價值,感興趣的可以了解一下2024-03-03
Java及nginx實現(xiàn)文件權(quán)限控制代碼實例
這篇文章主要介紹了Java及nginx實現(xiàn)文件權(quán)限控制代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06

