模糊查询:
1
2
3
4
|
@Select ({ "SELECT * FROM account where account like CONCAT('%',#{query},'%') or email like CONCAT('%',#{query},'%')" }) Account findAccountByAccountOrMail( @Param ( "query" ) String query); |
批量添加:
1
2
3
4
5
6
7
8
9
|
@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); |
批量删除:
1
2
3
4
5
6
7
8
|
@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); |
批量修改:
1
2
3
4
5
|
@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); |
批量查询:
1
2
3
4
5
6
7
|
@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里面不仅可以判空,还可以判断是否满足某个条件
1
2
3
4
5
6
7
8
9
|
@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); |
条件查询:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
*/ @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 条件查询 批量增删改查功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/c568254965/article/details/73527347