在mybatis xml编写sql语句时,同时使用AND和OR注意

当AND和OR同时使用时,要把OR的条件使用小括号括起来
例如下边这个例子,在第一个if标签中同时使用了AND和OR,
想要实现同一个搜索框搜索两个字段,如果不加括号则会搜索内容出错
<select id="selectAll" parameterType="com.jh.store.entity.criteris.GoodsCriteria" resultType="com.jh.store.entity.domain.GoodsInfor">
    select
    t_bus_goods.id,
    goods_name,orig_price,
    t_ent_store.store_name,
    t_bus_goods.good_type_name,
    consum_start_date,
    pic_url,
    max_count,
    share_num,
    start_date,
    during,
    t_bus_goods.end_date,
    is_show,
    share_status,
    sex_limit,
    male_count,
    female_count,
    time_end_logic,
    t_bus_goods.description
    from
    t_bus_goods,t_ent_store
    WHERE
    t_bus_goods.store_id=t_ent_store.id
        <if test="null!= name">
            and (goods_name like "%"#{name}"%" or store_name like "%"#{name}"%")
        </if>
    <if test="-3 != is_check">
        and share_status=#{is_check}
    </if>
    <if test="null!=onetime">
        and t_bus_goods.consum_start_date <![CDATA[ >= ]]> #{onetime}
    </if>
    <if test="null!=twotime">
        and t_bus_goods.consum_start_date <![CDATA[ <= ]]> #{twotime}
    </if>
        <if test="null!=onlytime">
            and t_bus_goods.consum_start_date <![CDATA[ >= ]]> #{onlytime}
            and t_bus_goods.consum_start_date <![CDATA[ < ]]> #{onlytime2}
        </if>

    ORDER BY consum_start_date DESC
    </select>
Mybatis-Plus 提供了一个非常方便的分页插件,可以很方便地实现分页查询。在使用 Mybatis-Plus 进行分页查询,可以通过编写 XML 映射文件来实现。 假设要查询 A 表和 B 表的连表结果并进行分页,可以按照以下步骤进行操作: 1. 在 Mybatis-Plus 配置文件(一般是 application.yml 或 application.properties)中开启分页插件: ```yaml mybatis-plus: configuration: # 开启分页插件 page-helper: true ``` 2. 编写 A 表和 B 表的实体类,并使用 Mybatis-Plus 提供的注解(如@TableField)来进行关联映射。 3. 在 XML 映射文件中编写 SQL 查询语句,并使用 Mybatis-Plus 提供的分页标签(如<page>)来实现分页。 例如,假设要查询 A 表和 B 表的连表结果,并按照 id 排序,查询第 11 到 20 条记录,可以编写如下 XML 映射文件: ```xml <!-- A 表的映射文件 --> <mapper namespace="com.example.mapper.AMapper"> <select id="selectByPage" resultMap="BaseResultMap"> SELECT A.*, B.* FROM A JOIN B ON A.id = B.a_id ORDER BY id <!-- 使用 Mybatis-Plus 提供的分页标签 --> <page limit="10" offset="10"/> </select> </mapper> ``` 4. 在代码中调用对应的 mapper 方法进行查询即可。例如,在 AMapper 接口中定义如下方法: ```java List<A> selectByPage(); ``` 在实际使用中,需要根据具体情况进行调整,例如根据查询条件进行筛选等。需要注意的是,Mybatis-Plus 的分页插件默认使用的是 PageHelper,如果需要使用其他分页插件,可以在配置文件中进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值