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 属性指定 |
<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=喜喜]
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


