mybatis使用trim自定义动态sql字符串截取

 时间:2026-02-14 15:07:50

1、新建一个员工的mapper。

package com.gwolf.dao;

import java.util.Map;

import org.apache.ibatis.annotations.MapKey;

import com.gwolf.bean.Employee;

public interface EmployeeMapper {

        

        public 返回的对象 getObjectById(Integer id);

        

        

        

}

mybatis使用trim自定义动态sql字符串截取

2、现在我们的动态sql语句是这样的。

<select id="getObjectById" resultMap="MyEmpByStep" databaseId="mysql">

        select *

        from tbl_emp 

        

        <where>

                <if test="empId!=null and empId!=''">

                        emp_id = #{empId} and 

                </if>

                

                <if test="empName!=null and empName!=''">

                        emp_name = #{empName}

                </if>

                

        </where>

        </select>

mybatis使用trim自定义动态sql字符串截取

3、上述动态sql假如我们只要员工id的话sql是有错误的。接下来我们将动态sql放在trim标签中,trim标签能够去掉后面多出的and或者or。

<select id="getObjectById" resultMap="MyEmpByStep" databaseId="mysql">

        select *

        from tbl_emp 

        

        <trim prefix="" prefixOverrides="" suffix="">

                <if test="empId!=null and empId!=''">

                        emp_id = #{empId} and 

                </if>

                

                <if test="empName!=null and empName!=''">

                        emp_name = #{empName}

                </if>

                </trim>

                

        </select>

mybatis使用trim自定义动态sql字符串截取

4、<trim prefix="" prefixOverrides="" suffix="">中prefix标识给拼完后的整个字符串加一个前缀。

<select id="getObjectById" resultMap="MyEmpByStep" databaseId="mysql">

        select *

        from tbl_emp 

        

        <trim prefix="where" prefixOverrides="" suffix="">

                <if test="empId!=null and empId!=''">

                        emp_id = #{empId} and 

                </if>

                

                <if test="empName!=null and empName!=''">

                        emp_name = #{empName}

                </if>

                </trim>

                

        </select>

mybatis使用trim自定义动态sql字符串截取

5、<trim prefix="" prefixOverrides="" suffix="">中prefixOverrides表示去掉这个字符串前面多余的字符串。我们这些不需要去除。可以不要写这个属性。

<select id="getObjectById" resultMap="MyEmpByStep" databaseId="mysql">

        select *

        from tbl_emp 

        

        <trim prefix="where" suffix="">

                <if test="empId!=null and empId!=''">

                        emp_id = #{empId} and 

                </if>

                

                <if test="empName!=null and empName!=''">

                        emp_name = #{empName}

                </if>

                </trim>

                

        </select>

mybatis使用trim自定义动态sql字符串截取

6、<trim prefix="" prefixOverrides="" suffixOverrides="and">中suffixOverrides标识给拼串后的整个字符串加一个后缀。我们这里是去掉and。

<select id="getObjectById" resultMap="MyEmpByStep" databaseId="mysql">

    select *

    from tbl_emp 

   

    <trim prefix="where" suffixOverrides="and">

    <if test="empId!=null and empId!=''">

    emp_id = #{empId} and 

    </if>

   

    <if test="empName!=null and empName!=''">

    emp_name = #{empName}

    </if>

    </trim>

   

  </select>

mybatis使用trim自定义动态sql字符串截取

  • jquery怎么将获取的对象变成数组
  • JS中如何删除选中复选框的行
  • DBeaver如何修改连接类型
  • Myeclipse如何呈现idea中的多屏效果
  • iframe 获取父页面方法
  • 热门搜索
    琼楼玉宇的意思 cg是什么意思 姜茶什么时候喝 朝夕相处的意思 翡翠恋人什么时候播出 k值是什么意思 喝牛奶有什么坏处 强光手电什么牌子好 蚍蜉撼树什么意思 什么是工商企业管理