首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mybatis使用generatedKey插入数据返回自增id始终为1,自增id实际返回到原对象当中的问题排查

今天使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回此数据对应的自增主键id,但是使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是...终于凭借着一次Debugg发现的问题,原来使用Mabatis中的insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey)返回值...int表示的是插入操作受影响的行数,而不是指的自增长id,那么返回的自增id到底去哪里了呢?...通过下面的Debugg我们知道自增id返回到testGenKey的原对象中去了。 举例示范配置 数据库示例表  generator的配置文件 <?...,而不是返回值!

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

放弃Spring Boot 中的 RestTemplate,我选择 Retrofit !

如果你spring-boot项目里面使用过mybatis,相信你对这种使用方式会更加熟悉。 接下来我们继续介绍一下retrofit-spring-boot-starter更高级一点的功能。...当然,我们也可以配置文件中配置多个自定义的连接池,然后通过@RetrofitClient的poolName属性来指定使用。...将响应体内容适配成CompletableFuture对象返回 Void: 不关注返回类型可以使用Void。...数据转码器 Converter Retrofi使用Converter将@Body注解标注的对象转换成请求体,将响应体数据转换成一个Java对象,可以选用以下几种Converter: Gson: com.squareup.Retrofit...如果需要使用其它序列化方式,项目中引入对应的依赖,再把对应的ConverterFactory配置成spring的bean即可。

2.8K11

spring-boot项目优雅的http客户端工具,真香!

如果你spring-boot项目里面使用过mybatis,相信你对这种使用方式会更加熟悉。接下来我们继续介绍一下retrofit-spring-boot-starter更高级一点的功能。...当然,我们也可以配置文件中配置多个自定义的连接池,然后通过@RetrofitClient的poolName属性来指定使用。...将响应体内容适配成CompletableFuture对象返回 Void: 不关注返回类型可以使用Void。...数据转码器 Converter Retrofi使用Converter将@Body注解标注的对象转换成请求体,将响应体数据转换成一个Java对象,可以选用以下几种Converter: Gson: com.squareup.Retrofit...如果需要使用其它序列化方式,项目中引入对应的依赖,再把对应的ConverterFactory配置成spring的bean即可。

2.5K20

SpringBoot基础系列之AOP结合SpEL实现日志输出中两点注意事项

AOP & SpEL 关于 AOP 与 SpEL 的知识点,之前都有过专门的介绍,这里做一个聚合,一个非常简单的日志输出切面,需要打印日志的方法上,添加注解@Log,这个注解中定义一个key,作为日志输出的标记...} } private String loadKey(String key, ProceedingJoinPoint joinPoint) { if (key == null...我们修改一下上面的loadKeys方法 private String loadKey(String key, ProceedingJoinPoint joinPoint) { if (key == null...3. gson 序列化问题 上面的 case 中,使用的 FastJson 对传参进行序列化,接下来我们采用 Gson 来做序列化 com.google.code.gson...//github.com/liuyueyi/spring-boot-demo 源码: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot

58000

Google Gson用法详解

Gson会忽略null字段,因为此行为允许使用更紧凑的JSON输出格式。...将确保将Java字段名称的第一个“字母”序列化为JSON格式将其大写,并且单词之间将使用空格分隔: { "Id": 1, "First_ Name": "Lokesh", "Last Name...2、Tokens 流模式下,每个JSON数据都被视为一个单独的令牌。 当我们使用JsonReader对其进行处理,每个令牌将被顺序处理。...可以使用nextNull()或skipValue()使用空文字。 所有next ....()方法都返回当前标记的值,并将内部指针移至下一个。 当遇到未知名称,严格的解析器应该失败,并带有异常。...当Gson遇到指定类型的字段,它会在序列化期间调用其回调方法deserialize()。 2.2、自定义反序列化示例 假设某些服务将日期字段分别分为天,月和年等部分分别返回给我们。

21.3K31

Android Study 之 彻底解决 Gson解析 异常 :JsonSyntaxException

前言 开发过程中,App常用的接收参数的时候,几乎大部分都是以json格式为主,那么有关解析json的方式有很多,Android端相对来说使用Gson比较多,而在解析过程中,如果你遇到规范的后台,那你大可放心随便浪...描述问题 实现某个功能,调用某个接口,返回如下参数: "createTime": "2017-10-26 06:46:23", "certificates": null, "certificatesPhotos...可是解析过程中,GG了。。。 趟坑路,超神路 满怀信心的撸码,运行,app却提示了如下类型错误: com.google.gson.JsonSyntaxException 上来一看,Json格式错误?...回头再仔细看下返回的Json。 有的值为null,有的值为“” 重点结合度娘的意见以及重新回顾Json串,确定了是由于后台接口参数返回不规范(也就是设计不合理)导致解析失败。 ? 那么怎么解决呢?...其实说白了,就是转化解析的过程中对后台返回Json中不合法的属性字段进行有效处理即可。具体直接看下面工具类即可。

4.3K10

Gson 简单使用姿势小结

Gson 简单使用姿势小结 关于 Json 序列化的框架可以说比较多了,比如 Spring 默认的 Jackson,国内互联网用的比较多的 FastJson,本文则主要介绍一下 Gson 的简单使用姿势...对象序列化 对象的序列化与反序列化可以说是最常见的, Gson使用过程中,推荐的对象写法 filed:private 修饰 不希望序列化的成员,添加transient修饰符 默认无参构造方法(可选...: BaseBean{age=10, name='一灰灰blog', code=0, email='null'} 请注意: 输出 json 串null 和transient修饰的成员不会输出到 json...(); System.out.println("serialize with null: " + gsonWithNUll.toJson(bean)); 输出结果如下 serialize with null...JsonElement对象,这个对象比较有意思,提供了一些基础的类型输出方法如 getAsString: 返回 String getAsInt: 返回 int getAsJsonArray: 返回 JsonArray

73920

Kubernetes官方java客户端之二:序列化和反序列化问题

相关的序列化和反序列化处理使用Gson注解,因此上述Bean实例SpringBoot中涉及到JSON处理,可能会有问题(这时只能说可能),例如RestController返回对象,会被Jackson...这里用一个SpringBoot工程来演示此问题(该工程名为OutsideclusterApplication,下一篇文章会详细说明),如下代码是个http接口响应,可见V1PodList实例作为接口返回..., null, null, null, null, null, null, null, null); return v1PodList; } 上述代码运行起来,浏览器访问该接口...,能够调用正确的方法,以IntOrString为例,如果此时内部保存int型数据,就应该执行其getIntValue方法即可; Bean中使用Gson注释,就是打算用Gson来处理序列化和反序列化操作的...: 使用Jackson的场景 上述方式虽然可行,但并非所有项目都能坚持使用Gson而放弃Jackson,对于使用Jackson的项目,请避免Jackson参与K8S官方java客户端bean的序列化和反序列化操作

1.1K30

SpringBoot基础系列之AOP结合SpEL实现日志输出中两点注意事项

AOP & SpEL 关于 AOP 与 SpEL 的知识点,之前都有过专门的介绍,这里做一个聚合,一个非常简单的日志输出切面,需要打印日志的方法上,添加注解@Log,这个注解中定义一个key,作为日志输出的标记...} } private String loadKey(String key, ProceedingJoinPoint joinPoint) { if (key == null...我们修改一下上面的loadKeys方法 private String loadKey(String key, ProceedingJoinPoint joinPoint) { if (key == null...3. gson 序列化问题 上面的 case 中,使用的 FastJson 对传参进行序列化,接下来我们采用 Gson 来做序列化 com.google.code.gson...//github.com/liuyueyi/spring-boot-demo 源码: https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot

44220

Kubernetes官方java客户端之二:序列化和反序列化问题

JSON相关的序列化和反序列化处理使用Gson注解,因此上述Bean实例SpringBoot中涉及到JSON处理,可能会有问题(这时只能说可能),例如RestController返回对象,会被...这里用一个SpringBoot工程来演示此问题(该工程名为OutsideclusterApplication,下一篇文章会详细说明),如下代码是个http接口响应,可见V1PodList实例作为接口返回..., null, null, null, null, null, null, null, null); return v1PodList; } 上述代码运行起来,浏览器访问该接口...: [在这里插入图片描述] 使用Jackson的场景 上述方式虽然可行,但并非所有项目都能坚持使用Gson而放弃Jackson,对于使用Jackson的项目,请避免Jackson参与K8S官方java客户端...bean的序列化和反序列化操作,以上面出现的Controller代码为例,不要直接将V1PodList实例返回,您可以选择先用Gson序列化成JSON字符串,再返回字符串给前端,也可以自己定义VO对象,

1.3K30

如何更好的使用Gson

今天想分享一些工作中遇到的关于gson的坑,这么说其实不太准确,因为不能算是gson的坑,更多的是因为旧代码产生了一些不规范的数据导致使用gson遇到了一些问题。...gson简介 可能有的同学不了解gson,所以分享坑之前先来介绍一下gson,已经熟练使用gson的同学可以直接跳到下一部分了。...那现在我们已经学会gson的基础用法了,接下来就进入正题,分享几个我使用过程中遇到的实际问题以及解决方案。...案例分享 null转为空字符串 我们的使用过程中,遇到过这样的情况对于一个对象,在做序列化的时候,如果遇到了某个item为null,那么gson序列化出来的结果中就不会包含这个属性,这看起来很合理,不过对于我们的项目而言...数字和Boolean到底用哪个 我们开发过程中还遇到了这样一个问题,和另一个node写的服务做交互,我们发现,node服务返回给我们的JSON对应的Boolean类型字段的值是0或1。

1.1K20

如何更好的使用Gson

今天想分享一些工作中遇到的关于gson的坑,这么说其实不太准确,因为不能算是gson的坑,更多的是因为旧代码产生了一些不规范的数据导致使用gson遇到了一些问题。...gson简介 可能有的同学不了解gson,所以分享坑之前先来介绍一下gson,已经熟练使用gson的同学可以直接跳到下一部分了。...那现在我们已经学会gson的基础用法了,接下来就进入正题,分享几个我使用过程中遇到的实际问题以及解决方案。...案例分享 null转为空字符串 我们的使用过程中,遇到过这样的情况对于一个对象,在做序列化的时候,如果遇到了某个item为null,那么gson序列化出来的结果中就不会包含这个属性,这看起来很合理,不过对于我们的项目而言...数字和Boolean到底用哪个 我们开发过程中还遇到了这样一个问题,和另一个node写的服务做交互,我们发现,node服务返回给我们的JSON对应的Boolean类型字段的值是0或1。

1.5K00

人生苦短,我用Gson

:18} 2、暴露序列化注解@Expose 使用此注解就可以选择性的序列化类的属性,前面介绍的方法都是直接使用new Gson(),toJson()和fromJson()方法,这会将全部的字段序列化或反序列化...', age=18} 四、Gson高阶用法 1、泛型类反序列化 fromJson使用TypeToken格式 public static void main(String[] args) {...默认不会转换为null的属性,使用serializeNulls不会丢失null属性 //不加serializeNulls会丢弃掉null值的属性: public static void main(String...另外一点可以看出当类型为BEGIN_OBJECTObjectTypeAdapter返回Gson自定义的map类型LinkedTreeMap,如果使用时用到强转为HashMap会报错,由于我们使用的都是...Gson核心jar包不到1M,非常精简,但提供的功能无疑是非常强大的,如果使用JDK自带的JSON解析API,使用起来相对比较繁琐一点,而且代码量较多,推荐大家可以尝试使用

2.1K50
领券