Mybatis插入postgresql数据库中类型为UUID的字段
项目中使用postgresql数据库,当表的主键是UUID类型时,出现了一些问题,由于某些原因,无法修改数据库中字段类型,只能自己想办法解决:
问题一,使用mybatis-generator自动生成时,UUID字段类型由于无法映射成对应的Java类型,会默认映射成Object对象;
解决方案(PS:表中的主键名是“uuid”,字段类型是UUID):
- <table tableName="centrex_operator" domainObjectName="CentrexOperator"
- enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
- enableSelectByExample="false" selectByExampleQueryId="false">
- <!-- column是表中的字段名
- jdbcType是将表中的该字段指定为某种类型
- property是对应的Java Bean中的属性名
- javaType是对应的属性类型-->
- <columnOverride column="uuid" jdbcType="VARCHAR" property="uuid" javaType="java.lang.String" />
- </table>
通过以上方法可将类型为UUID的字段映射成对应的Java属性类型为字符串String。
问题二,对于表中的UUID字段,新增或删除记录,都无法将该字段插入进去,会报PSQLException: 字段“uuid”的类型为uuid,但表达式的类型为character varying ,如下图所示:
解决方案:
将与表中类型为UUID的对应的Java属性转换一下,如下图中的红色矩形框所示:
原本是'#{uuid,jdbcType=VARCHAR}',改成‘#{uuid}::uuid’即可,其余的类似,经过测试,增删改查中,只要在将表中类型为UUID的字段对应的Java属性,用#{}取值时,在后面加上'::uuid'就可以了,查了一下,字段是uuid类型的,不能直接使用,需要通过col::uuid转换。
Mybatis插入postgresql数据库中类型为UUID的字段相关推荐
- postgresql数据库中使用使用UUID
目录 问题现象: 问题分析: 解决方法: 问题现象: 今天在项目学习中,需要给数据添加一个id,组长要求使用UUID. 问题分析: 由于我们的项目中使用的是postgresql数据库,那么如果在pos ...
- Java通过mybatis插入Oracle数据库中Date格式不显示到时分秒问题
我在用mybatis generator生成代码后,执行查询语句时,Oracle里的Date类型字段只精确到年月日,后面时分秒都为零. 后来发现是jdbcType问题,改成 jdbcType=&quo ...
- mybatis insert 插入数据,显示执行成功,但未真正插入到数据库中
(1)通过mybatis插入数据库,插入数据,显示插入成功,查询数据库,发现并未插入成功.通过日志可看到原因为:插入的语句回滚连接数据库了,导致插入失败. (2)应加入commit语句,手动执行提交事 ...
- 详解PostgreSQL数据库中的两阶段锁
点击上方"蓝字" 关注我们,享更多干货! 数据库中的对象是共享的,假如不同的用户同时修改某个对象,就会出现数据错乱,从而破坏数据库的数据一致性,违反事务的隔离性原则. 为了满足隔离 ...
- Mybatis插入MySQL数据库中文乱码
Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...
- golang操作postgresql数据库jsonb类型
golang操作postgresql数据库jsonb类型 本文以案例为主,少言,自悟. 推荐一个测试sql的网站 SQL操作 // 创建一个带有jsonb列的表 CREATE TABLE items ...
- postgresql数据库字节流类型详解
bytea类型可以存储二进制字符串,是Postgresql数据库中保存字节流的类型. bytea的存储空间是1或4字节+实际的二进制字符串,可见bytea是变长的二进制字符串. 二进制字符串是一个字节 ...
- java 往数组里添加数据库_Java中将数组各元素作为数据项插入到数据库中
Java中将数组各元素作为数据项插入到数据库中 private PreparedStatement pstmt; String sql="INSERT INTO TABLE(id,名称,用户 ...
- PHP实现单击“添加”按钮增加一行表单项,并将所有内容插入到数据库中
PHP实现单击"添加"按钮增加一行表单项,并将所有内容插入到数据库中 效果图: html+jquery: <html> <head> <meta ht ...
- html数据插入到数据库,将数据插入到数据库中:text和html格式
将数据(文本和HTML格式)插入到mysql字段LONGTXT中时出现问题. 这里是错误将数据插入到数据库中:text和html格式 public 'error' => string 'You ...
最新文章
- 控制行输入以下两句命令16倍速播放青年大学习
- 三两下实现NLP训练和预测,这四个框架你要知道
- frac函数_20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子
- 解决mysql插入中文出现错误Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F...‘ for column ‘course‘ at row 1
- 网络监控系统安装的4种方式,安防必备
- 心理学系列:《乌合之众》读书笔记
- 窥探Swift之新添数据类型元组与可选值
- python win32api sendmessage_python win32api模拟后台鼠标点击的问题。
- API卡_什么是图形API,API又是用来做什么的,其实它是一名出色的翻译官
- Origin图选择性粘贴到word出现问题,提示‘word出现问题’解决方法
- 技术书是怎么写出来的
- Java101___一个牛人给JAVA初学者的建议
- sbuf.st_size 为负数
- 【C语言总结】C语言预处理器
- qq邮箱 实现邮件的发送
- 应广单片机定时器中断配置
- python 中文名称文件保存
- 计算机组成置NVCZ为零,《计算机组成原理》第3版PPT电子课件教案-第四章 指令系统.ppt...
- Hexo(sakura)主题Mashiro大佬同款LOGO修改方法
- typescript (简写Ts)
热门文章
- Python 持久存储
- conda create出现连接问题_解决conda创建新环境慢 conda install 速度慢 报错问题
- ios 通知接收两次_苹果健康体系又进一步,iOS 14.3支持有氧适能通知
- python自动写工作日志_python自动化执行重复工作
- win10下安装maven
- Python--文件修改
- MySQL编译安装时常见错误分析
- linux挂在Windows操作系统共享文件夹
- View Horizon Mirage安装手册(三)——Mirage Management安装
- 关于弱电工程图纸的几个常见问题