Mybatis 动态insert语句
2024-10-09 08:50:34
mybatis的一个比较先进的思想是把Sql语句写在了配置xml文件(也支持注解),通过配置文件的方式,免去了一般软件开发的硬编码,当业务需求改变的时候,只需要更改sql语句即可!
下面是个人在学习mybatis动态insert语句的笔记,留着参考!
在写insert子句的时候,由于不知道需要插入多少字段,mybatis通过prefix,suffix,suffixOverrides很好的解决了该问题,实现了动态insert语句。
<insert id="insertSelective" parameterType="com.bootdo.system.domain.LogDO">
insert into sys_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="userId != null">
user_id,
</if>
<if test="username != null">
username,
</if>
<if test="operation != null">
operation,
</if>
<if test="time != null">
time,
</if>
<if test="method != null">
method,
</if>
<if test="params != null">
params,
</if>
<if test="ip != null">
ip,
</if>
<if test="gmtCreate != null">
gmt_create,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="userId != null">
#{userId,jdbcType=BIGINT},
</if>
<if test="username != null">
#{username,jdbcType=VARCHAR},
</if>
<if test="operation != null">
#{operation,jdbcType=VARCHAR},
</if>
<if test="time != null">
#{time,jdbcType=INTEGER},
</if>
<if test="method != null">
#{method,jdbcType=VARCHAR},
</if>
<if test="params != null">
#{params,jdbcType=VARCHAR},
</if>
<if test="ip != null">
#{ip,jdbcType=VARCHAR},
</if>
<if test="gmtCreate != null">
#{gmtCreate,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
最新文章
- C#DataGridView合计处理
- [CareerCup] 1.8 String Rotation 字符串的旋转
- PC-1500与PC通讯
- linux常用命令--ps、netstat、find
- 内核同步机制 RCU
- 【Implement strStr() 】cpp
- hdu 1533 Going Home 最小费用最大流
- asp.net mvc 的几种分页Pager
- css 盒子模型理解
- 【HDOJ】1686 Oulipo
- js的兼容性问题
- Asp.net mvc4 + HighCharts + 曲线图
- UESTC_全都是秋实大哥 2015 UESTC Training for Search Algorithm &; String<;Problem J>;
- javascript日历插件
- Python新手需要掌握的知识点
- Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
- @ConfigurationProperties 配置详解
- Forth 输入流处理
- js计算base64文件流大小
- 自己写了一个解析json为table的工具类