MyBatis trim标签起什么作用呢?

转自:

MyBatis trim标签起什么作用呢?

MyBatis中trim标签有哪些功能呢?

trim 可用于剔除SQL语句中多余的 AND 关键字、逗号,或者给 SQL 语句前拼接 where、set 等后缀,
可用于选择性插入、更新、删除或者条件查询等操作

trim 语法格式如下:

<trim prefix="前缀" suffix="后缀" prefixOverrides="忽略前缀字符" suffixOverrides="忽略后缀字符" >
    SQL语句
</trim>

trim 中属性如下表所示:

属性备注说明
prefix给SQL语句拼接的前缀,为 trim 包含的内容加上前缀
suffix给SQL语句拼接的后缀,为 trim 包含的内容加上后缀
prefixOverrides去除 SQL 语句前面的关键字或字符,该关键字或者字符由 prefixOverrides 属性指定
suffixOverrides去除 SQL 语句后面的关键字或者字符,该关键字或者字符由 suffixOverrides 属性指定

例: 使用trim标签实现where标签的效果 UserInfoMapper.xml

<select id="selectUserInfo" resultType="com.java265.po.UserInfo">
    SELECT id,name,notes
    FROM UserInfo
    <trim prefix="where" prefixOverrides="and">
        <if test="name != null and name !=''">
            AND name LIKE CONCAT ('%',#{name},'%')
        </if>
        <if test="notes!= null">
            AND notes like concat ('%',#{notes},'%')
        </if>
    </trim>
</select>

UserInfoMapper 类

public List<UserInfo> selectUserInfo(UserInfo UserInfo);

测试类

public class Test {
    public static void main(String[] args) throws IOException {
        // 读取配置文件mybatis-config.xml
        InputStream config = Resources.getResourceAsStream("mybatis-config.xml"); // 根据配置文件构建
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
        // 通过SqlSessionFactory创建SqlSession
        SqlSession ss = ssf.openSession();
        UserInfo userInfo = new UserInfo();
        userInfo.setname("王二");
        userInfo.setNotes("喜喜");
        List<UserInfo> userList = ss.selectList("com.java265.mapper.UserInfoMapper.selectUserInfo", userInfo);
        for (UserInfo t : userList) {
            System.out.println(t);
        }
    }
}

输出结果--
DEBUG [main] - ==> Preparing: SELECT id,name,notes FROM UserInfo where name LIKE CONCAT ('%',?,'%') AND notes like concat ('%',?,'%')
DEBUG [main] - ==> Parameters: 王二(String), 喜喜(String)
DEBUG [main] - <== Total: 1
UserInfo[id=1,name=王二,notes=喜喜]

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值