1. 问题描述

同事团队在使用springboot+mybatis+Greenplum时,发现通过mybatis数据查询正常,但是执行insert和update执行会报“Cause: org.postgresql.util.PSQLException: ERROR: The RETURNING clause of the INSERT statement is not supported in this version of Greenplum Database.”。

而我们团队使用Greenplum的模式是:晚上通过spark跑批入库Greenplum,平台只使用了Greenplum的查询功能,未使用Mybatis进行插入操作。

2. 解决方案

2.1 问题定位

首先创建同样格式的test表,验证jdbc方式是否可行,验证后,发现jdbc能正常插入,认为问题可能出在mybtis或者postgre/greeenplum版本问题上。

2.2 定位结论

经过多次验证,发现问题出在:

Mybatis3默认在插入或者更新数据后,会返回影响行数( int insert(trorgvehiclviewtest record);),但是Greenplum是基于postgresql8.2开发的,postgresql8.2不支持返回这个特性导致的。

2.3 解决方案

​ 通过在insert/update语句后面,增加statementType参数可以解决该问题,statementType参数设置为"CALLABLE" 就能正常使用。

​ 示例:

    <insert id="insert" parameterType="com.laowang.Test" statementType="CALLABLE">
</insert>

​ 取值说明:

1、STATEMENT:直接操作sql,不进行预编译,获取数据:$—Statement

2、PREPARED:预处理,参数,进行预编译,获取数据:#—–PreparedStatement:默认

3、CALLABLE:执行存储过程————CallableStatement


Greenplum+mybatis问题解析的更多相关文章

  1. MyBatis配置文件解析

    MyBatis配置文件解析(概要) 1.configuration:根元素 1.1 properties:定义配置外在化 1.2 settings:一些全局性的配置 1.3 typeAliases:为 ...

  2. MyBatis配置解析

    MyBatis配置文件解析(概要) 1.configuration:根元素 1.1 properties:定义配置外在化 1.2 settings:一些全局性的配置 1.3 typeAliases:为 ...

  3. 互联网轻量级框架SSM-查缺补漏第七天(MyBatis的解析和运行原理)

    第七章MyBatis的解析和运行原理 SqlSessionFactory是MyBatis的核心类之一,其最重要的功能就是提供创建MyBatis的核心借口SqlSession,所以要先创建SqlSess ...

  4. Mybatis的解析和运行原理

    Mybatis的解析和运行原理 Mybatis的运行过程大致分为两大步:第一步,读取配置文件缓存到Configuration对象,用以创建 SqlSessionFactory:第二步,SqlSessi ...

  5. Mybatis框架解析之Builder解析

    首先我们从builder这个类入手,首先我们注意到BaseBuilder,其实它的本质上市一个抽象类,它从本质上抽象出了Builder的一切,我猜想这里一定使用了建造者模式,但是这个抽象类里面居然没有 ...

  6. 《深入浅出MyBatis技术原理与实战》——6. MyBatis的解析和运行原理

    MyBatis的运行分为两大部分,第一部分是读取配置文件缓存到Configuration对象,用以创建SqlSessionFactory,第二部分是SqlSession的执行过程. 6.1 涉及的技术 ...

  7. Mybatis:配置解析

    配置解析  mybatis-config.xml(Mybatis核心配置文件)深深影响了Mybatis行为的设置和属性信息. 能配置的的内容 当然,并不是所有都是我们经常使用到的,下面选择经常使用的配 ...

  8. mybatis原理解析

    本文是结合spring-mybatis整合进行的分析 1.先看看依赖的jar包: <dependency> <groupId>org.mybatis</groupId&g ...

  9. Mybatis配置解析(核心配置文件)

    4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...

随机推荐

  1. WPF修改窗体标题栏的颜色

    WPF程序通常情况下没办法修改窗体标题栏的样式,包括标题栏的背景颜色. 不过借助一个叫Fluent.Ribbon的第三方控件,貌似可以修改标题栏的背景颜色. 可以通过NuGet来安装这个控件:Inst ...

  2. Android之Log封装

    blog原文地址:http://yuxingxin.com/2015/10/26/AndroidLog/ Github:https://github.com/fallblank/CodeEssay

  3. JS获取a标签的Href 内容

    <script type="text/javascript">function getHref(obj){ alert(obj.href);} </script& ...

  4. IDHTTP-HTTPS通讯方法(Indy10.2.3之前仅支持OpenSSL的0.9.8以前的版本)

    加载https的站点页面内容的时候记得在窗体上加上“IdSSLIOHandlerSocketOpenSSL1” 以及idhttp里面IOHandler为“IdSSLIOHandlerSocketOpe ...

  5. stdlib.h,string.h,wchar.h的函数列表(cplusplus.com就有,很清楚)goodx

    Multibyte characters mblen Get length of multibyte character (function ) mbtowc Convert multibyte se ...

  6. QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)

    使用QT也有一段时间了,有的时候需要跟踪代码到QT的源码中去查找问题.在这里我将记录一下我跟踪QT源码学习到的一些知识. 我的开发环境是VC6.0+QT4.3.3.QT已经不为VC6.0提供addin ...

  7. uni-app中vue组件父子值传递

    一.父组件向子组件传递数据(props) <template> <view class="container" style="background: # ...

  8. git(一)

    一.邮件的格式 抄送:需要知道这件事的人 内容: 大家好: 我是xxx,附件内容是我的简历,请查收,有问题可以随时联系我susun|开发工程师电话:1231xxxxx31地址:xxxxxx联系电话(公 ...

  9. 揭秘重度MMORPG手游后台性能优化方案

    本文节选自<2018腾讯移动游戏技术评审标准与实践案例>手册,由腾讯互娱工程师王杰分享<仙剑奇侠传online>项目中游戏后台的优化经验,深度解析寻路算法.视野管理.内存优化. ...

  10. 【Webkit Blog翻译】深入研究WebRTC | 内有福利

    本文译自 A Closer Look Into WebRTC” 我们在最近的一篇 WebKit博客中宣布了对High Sierra平台和iOS中Safari的WebRTC支持.现在,我们希望能够带领大 ...