mybatis插值,数据提交事务回滚数据库值为空

通过sql日志查看sql为:INSERT INTO `quanxian`.`user` ( phone, email, password, times, name, age, address, sex, hobby, work ) VALUES (phone, email, password, times, name, age, address, sex, hobby, work );

1.0

初步怀疑是入参类型不对,于是检查类型:<insert id="addUser" parameterType="com.ry.project.vo.User">

入参类型没问题

2.0

继续查看Mapper接口:int addUser(User user);
接口没问题  

3.0 

于是控制台打印入参看看是否为空:{"address":"长江以北暂不繁华之处","age":20,"email":"727843252@qq.com","hobby":"电鱼","id":91,"name":"汤姆猫","password":"abc53814efg","phone":"18856519837","sex":"女","times":"2019-11-05 13:51:17","work":"电工"}

入参也没问题

4.0

回头继续检查mapper.xml文件

<trim prefixOverrides=",">
<if test="phone !=null">, `phone`=#{phone} </if>
<if test="email !=null">, `email`=#{email} </if>
<if test="password!=null">, `password`=#{password}</if>
<if test="times!=null">,`times`=#{times} </if>
<if test="name!=null">,`name`=#{name} </if>
<if test="age!=null">,`age`=#{age} </if>
<if test="address!=null">,`address`=#{address} </if>
<if test="sex!=null">,`sex`=#{sex}</if>
<if test="hobby!=null">,`hobby`=#{hobby} </if>
<if test="work!=null">, `work`=#{work}</if>
</trim>

发现入参为实体时添加插值没有指定jdbc类型,
于是添加类型
<if test="phone != null">#{phone,jdbcType=VARCHAR},</if>
<if test="email != null">#{email,jdbcType=VARCHAR},</if>
<if test="password != null">#{password,jdbcType=VARCHAR},</if>
<if test="times != null">#{times,jdbcType=VARCHAR},</if>
<if test="name != null">#{name,jdbcType=VARCHAR},</if>
<if test="age != null">#{age,jdbcType=INTEGER},</if>
<if test="address != null">#{address,jdbcType=VARCHAR},</if>
<if test="sex != null">#{sex,jdbcType=VARCHAR},</if>
<if test="hobby != null">#{hobby,jdbcType=VARCHAR},</if>
<if test="work != null">#{work,jdbcType=VARCHAR},</if>
至此问解决

mybatis插值,数据提交事务回滚数据库值为空的更多相关文章

  1. DataPipeline的增量数据支持回滚功能

    DataPipeline的增量数据支持回滚功能 第一步:数据任务有增量数据时,回滚按钮激活,允许用户使用该功能进行数据回滚. 第二步:点击回滚按钮,允许用户选择回滚时间或者回滚位置进行数据回滚.选择按 ...

  2. paip.导入数据英文音标到数据库mysql为空的问题之道解决原理

    paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙,  E ...

  3. EF Core利用Transaction对数据进行回滚保护

    What? 首先,说一下什么是EF Core中的Transaction Transaction允许以原子方式处理多个数据库操作,如果事务已提交,则所有操作都应用于数据库,如果事务回滚,则没有任何操作应 ...

  4. ORACLE提交事务回滚

    execute执行后 可以回滚 commit提交后 闪回恢复原来的数据 其实Oracle提交数据是分两步操作的,第一步execute执行,第二步commit提交.对应的PL\SQL也是要先点execu ...

  5. mybatis插入数据并获取主键值

    有时候我们的主键是自增的,但是我们想要在插入一条数据以后获取这条数据的主键值,而我们知道,mybatis执行完插入操作以后返回的是生效的记录数.那如何才能获取这个主键值呢. 1.在配置文件mapper ...

  6. 采购订单写入sap失败后,抛出自定义异常,回滚数据库

    @Transactional(rollbackFor = Exception.class) @Override public Map<String,Object> getOderInfo( ...

  7. SpringBoot集成tk mybatis插入数据,回显主键为null

    实体信息如下 @Data public class ApiCertificate{ @Id @GeneratedValue(generator = "JDBC") private ...

  8. mybatis 插入数据并返回主键值

    <insert id="insert" parameterType="com.pojo.TSubject" useGeneratedKeys=" ...

  9. 使用mybatis更新数据时 时间字段的值自动更新

    1.debug打印出来执行的sql语句发现并没有修改时间的字段,最后发现是设计表时勾选了根据当前时间戳更新..... 去掉该字段的根据当前时间戳更新语句: alter table tableName ...

随机推荐

  1. Ory Kratos 用户认证

    Ory Kratos 为用户认证与管理系统.本文将动手实现浏览器(React+AntD)的完整流程,实际了解下它的 API . 代码: https://github.com/ikuokuo/start ...

  2. 第四篇 -- CSS基础

    表单.单选.下拉框.文本域.多选框.提交.重置.按钮 <!DOCTYPE html> <html lang="en"> <head> <m ...

  3. 使用adb如何批量给设备安装apk

    win系统 1.首先我们需要在本地建一个文件夹apks,然后把所要安装的apk放进去 2.打开dos窗口使用for循环进行安装即可(前提你的电脑已经连接上了设备,输入adb devices可查看) f ...

  4. [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)

    目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2 ...

  5. nacos Failed to obtain JDBC Connection 连接异常

    在conf/目录下,将application.properties.example 改名为bootstrap.properties 将连接数据库信息添加到末尾 # db mysql spring.da ...

  6. 记intouch SMC local下驱动丢失问题解决

    最近项目中,维护发现Intouch 2014R2版本下,有一台上位机SMC下local安装的Dassdirect和dasmbtcp驱动都丢失了,无法查看.但不影响程序的正常使用,遂进行相应的寻求帮助, ...

  7. 云服务器是什么?ECS、BCC、CVM...

    什么是云服务器?云服务器有哪些优势?能用来干什么? 很多人不太了解云服务器的定义和用途. 云服务器是一种简单高效.处理能力可弹性伸缩的计算服务,帮助用户快速构建更稳定.安全的应用,提升运维效率,降低 ...

  8. K8S为什么要弃用Docker?Dockershim将移除

    一.背景由于最近知道了 K8s 新版本(v1.20)确定弃用 Docker 的消息,为了明确是否会对现有系统架构产生响,所以对涉及到的相关技术进行了一定的梳理(索性的是对现有的系统架构基本无影响:&g ...

  9. Android开发如何准备技术面试(含Android面试押题)

    今年毋庸置疑是找工作的寒冬,每一个出来找工作的同学都是值得尊敬的.现在找工作,虽然略难,但是反过来看也会逼迫我们成为更加优秀的自己. 但是不管是旺季还是寒冬,有一些优秀的同学找工作还是挺顺利的.所以说 ...

  10. Redis实战-详细配置-优雅的使用Redis注解/RedisTemplate

    1. 简介 当我们对redis的基本知识有一定的了解后,我们再通过实战的角度学习一下在SpringBoot环境下,如何优雅的使用redis. 我们通过使用SpringBoot内置的Redis注解(文章 ...