MyBatis动态SQL之 set 和 trim标记的使用
来源:互联网 发布:android自带数据库 编辑:程序博客网 时间:2024/05/16 17:02
和之前的where一样,set和trim也是智能标记
在之前的user.xml中添加
<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>
再在测试代码的try中添加
//动态SQL之setUser oneUser=new User();oneUser.setId(10);oneUser.setUserName("kobe10");oneUser.setPassword("10kobe");//set标记session.update("updateUserSet",oneUser);session.commit();
运行,执行的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中添加
<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>
与上面的set语句对比,prefix="SET" 是为SQL语句设置前缀,suffixOverrides是自动判断后缀 ","
suffix="WHERE id = #{id}" 是自动在加上后缀
在测试代码try中加入
User oneUser=new User();oneUser.setId(10);oneUser.setUserName("kobe10");oneUser.setPassword("10kobe");//trim标记session.update("updateUserTrim",oneUser);session.commit();
运行,执行的SQL代码还是UPDATE User SET userName = ?, password=? WHERE id = ?
代替where的就是添加 prefix="where" prefixOverrides="and|or" trim就会自动的添加前缀where和自动识别和去掉不用的and或or
以上便是MyBatis动态SQL的set标记和trim标记,欢迎指出不足之处,互相交流,谢谢。
阅读全文
0 0
- MyBatis动态SQL之 set 和 trim标记的使用
- MyBatis动态SQL之 set 和 trim标记的使用
- Mybatis 动态SQL之<trim>,<where>,<set>源码解析
- MyBatis动态SQL中trim的使用
- Mybatis动态SQL——if、choose、where、set、trim、foreach标记实例
- Mybatis的动态sql----where,trim,set,foreach
- Mybatis的动态sql----where,trim,set,foreach
- mybatis的动态SQL(三)where、set、trim标签的使用
- MyBatis-动态SQL的if、choose、when、otherwise、trim、where、set、foreach使用
- MyBatis-动态SQL的if、choose、when、otherwise、trim、where、set、foreach使用
- Mybatis的<where><trim><set>标签使用和排重
- mybatis动态sql查询Dynamic SQL之if,foreach,choose,trim,where,set
- MyBatis动态SQL中trim标签的使用
- MyBatis动态SQL中trim标签的使用参数
- mybatis动态sql中的trim标签的使用
- mybatis动态sql中的trim标签的使用
- mybatis动态sql中的trim标签的使用
- mybatis动态sql中的trim标签的使用
- Taming Recurrent Neural Networks for Better Summarization
- MyBatis(四) sql执行流程
- jdbc.properties配置
- C语言link过程详解
- maven java编译环境的设置
- MyBatis动态SQL之 set 和 trim标记的使用
- SpringBoot添加freemarker+jxl下载数据库记录
- (6)高通AP10.4开发者指南——WLAN(1.6 Wi-Fi校准数据映射)
- Spring Test
- 连接Linux服务器操作Oracle数据库
- 【备忘】Flume日志采集视频教程
- Tcp编程常见问题及解决方法总结(粘包,拆包)
- ios 去除警告
- mvc中重写url