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> "+ //
" <if test=\"org != null\"> and op.filter_id = #{org} and p.id = op.product_id</if> "+ //
" 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条件の検索量の削除と修正の机能です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに皆さんに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。