MyBatis动态SQL之 set 和 trim标记的使用
2016-01-29 00:00
666 查看
摘要: MyBatis动态SQL之 set 和 trim标记的使用
MyBatis动态SQL之 set 和 trim标记的使用
和之前的where一样,set和trim也是智能标记
在之前的user.xml中添加
?
再在测试代码的try中添加
?
运行,执行的SQL语句是 update User SET userName=?, password=? where id=?
set 自动识别并把sql语句中第二个逗号去掉的。此时数据库user表中id为10的username和password都被修改了。
//trim
trim标识为格式化标识,可以与其他标识完成where和set的功能
prefix 前缀增加 suffix 后缀增加 prefixOverrides 自动判断前置 suffixOverrides 自动判断后置
接着来测试一下,在user.xml中添加
?
与上面的set语句对比,prefix="SET" 是为SQL语句设置前缀,suffixOverrides是自动判断去掉后缀 ","
suffix="WHERE id = #{id}" 是自动在加上后缀
在测试代码try中加入
?
运行,执行的SQL代码还是UPDATE User SET userName = ?, password=? WHERE id = ?
代替where的就是添加 prefix="where" prefixOverrides="and|or" trim就会自动的添加前缀where和自动识别和去掉不用的and或or
以上便是MyBatis动态SQL的set标记和trim标记,欢迎指出不足之处,互相交流,谢谢。
MyBatis动态SQL之 set 和 trim标记的使用
和之前的where一样,set和trim也是智能标记
在之前的user.xml中添加
?
1 2 3 4 5 6 7 8 | <update id="updateUserSet" parameterType="User"> update User <set> <if test="userName != null">userName=#{userName},</if> <if test="password != null">password=#{password},</if> </set> where id=#{id} </update> |
?
1 2 3 4 5 6 7 8 | //动态SQL之set User oneUser=new User(); oneUser.setId(10); oneUser.setUserName("kobe10"); oneUser.setPassword("10kobe"); //set标记 session.update("updateUserSet",oneUser); session.commit(); |
set 自动识别并把sql语句中第二个逗号去掉的。此时数据库user表中id为10的username和password都被修改了。
//trim
trim标识为格式化标识,可以与其他标识完成where和set的功能
prefix 前缀增加 suffix 后缀增加 prefixOverrides 自动判断前置 suffixOverrides 自动判断后置
接着来测试一下,在user.xml中添加
?
1 2 3 4 5 6 7 8 9 10 | <update id="updateUserTrim" parameterType="User"> UPDATE User <trim prefix="SET" suffixOverrides="," suffix="WHERE id = #{id}" > <if test="userName != null and userName != '' "> userName = #{userName}, </if> <if test="password != null and password != '' "> password=#{password}, </if> </trim> |
suffix="WHERE id = #{id}" 是自动在加上后缀
在测试代码try中加入
?
1 2 3 4 5 6 7 | User oneUser=new User(); oneUser.setId(10); oneUser.setUserName("kobe10"); oneUser.setPassword("10kobe"); //trim标记 session.update("updateUserTrim",oneUser); session.commit(); |
代替where的就是添加 prefix="where" prefixOverrides="and|or" trim就会自动的添加前缀where和自动识别和去掉不用的and或or
以上便是MyBatis动态SQL的set标记和trim标记,欢迎指出不足之处,互相交流,谢谢。
相关文章推荐
- set 命令特殊用法
- You must SET PASSWORD before executing this statement的解决方法
- 批处理 Set 命令详解 让你理解set命令第1/2页
- ASP中set与dim的区别(自己的理解)
- 深入C#中get与set的详解
- Convert 将 FAT 和 FAT32 卷转换为 NTFS
- ASCII码表 和 说明
- sql Set IDENTITY_INSERT的用法
- Sql Server 和 Access 操作数据库结构Sql语句小结
- PHP 和 MySQL 开发的 8 个技巧
- set_include_path在win和linux下的区别
- Asp.Net 和 AJAX.Net 的区别第1/2页
- 读写xml所有节点个人小结 和 读取xml节点的数据总结
- HTTP_HOST 和 SERVER_NAME 的区别详解
- NextRecordset 和 GetRows 双簧合奏
- showModalDialog 和 showModelessDialog
- jquery中常用的SET和GET
- 终于了解了下.net 和 j2ee的区别
- 大家注意vector, list, set, map成员函数erase
- 基于SQL中SET与SELECT赋值的区别详解