项目中使用postgresql数据库,当表的主键是UUID类型时,出现了一些问题,由于某些原因,无法修改数据库中字段类型,只能自己想办法解决:

问题一,使用mybatis-generator自动生成时,UUID字段类型由于无法映射成对应的Java类型,会默认映射成Object对象;

解决方案(PS:表中的主键名是“uuid”,字段类型是UUID):

[html] view plaincopy
  1. <table tableName="centrex_operator" domainObjectName="CentrexOperator"
  2. enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
  3. enableSelectByExample="false" selectByExampleQueryId="false">
  4. <!-- column是表中的字段名
  5. jdbcType是将表中的该字段指定为某种类型
  6. property是对应的Java Bean中的属性名
  7. javaType是对应的属性类型-->
  8. <columnOverride column="uuid" jdbcType="VARCHAR" property="uuid" javaType="java.lang.String" />
  9. </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的字段相关推荐

  1. postgresql数据库中使用使用UUID

    目录 问题现象: 问题分析: 解决方法: 问题现象: 今天在项目学习中,需要给数据添加一个id,组长要求使用UUID. 问题分析: 由于我们的项目中使用的是postgresql数据库,那么如果在pos ...

  2. Java通过mybatis插入Oracle数据库中Date格式不显示到时分秒问题

    我在用mybatis generator生成代码后,执行查询语句时,Oracle里的Date类型字段只精确到年月日,后面时分秒都为零. 后来发现是jdbcType问题,改成 jdbcType=&quo ...

  3. mybatis insert 插入数据,显示执行成功,但未真正插入到数据库中

    (1)通过mybatis插入数据库,插入数据,显示插入成功,查询数据库,发现并未插入成功.通过日志可看到原因为:插入的语句回滚连接数据库了,导致插入失败. (2)应加入commit语句,手动执行提交事 ...

  4. 详解PostgreSQL数据库中的两阶段锁

    点击上方"蓝字" 关注我们,享更多干货! 数据库中的对象是共享的,假如不同的用户同时修改某个对象,就会出现数据错乱,从而破坏数据库的数据一致性,违反事务的隔离性原则. 为了满足隔离 ...

  5. Mybatis插入MySQL数据库中文乱码

    Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...

  6. golang操作postgresql数据库jsonb类型

    golang操作postgresql数据库jsonb类型 本文以案例为主,少言,自悟. 推荐一个测试sql的网站 SQL操作 // 创建一个带有jsonb列的表 CREATE TABLE items ...

  7. postgresql数据库字节流类型详解

    bytea类型可以存储二进制字符串,是Postgresql数据库中保存字节流的类型. bytea的存储空间是1或4字节+实际的二进制字符串,可见bytea是变长的二进制字符串. 二进制字符串是一个字节 ...

  8. java 往数组里添加数据库_Java中将数组各元素作为数据项插入到数据库中

    Java中将数组各元素作为数据项插入到数据库中 private PreparedStatement pstmt; String sql="INSERT INTO TABLE(id,名称,用户 ...

  9. PHP实现单击“添加”按钮增加一行表单项,并将所有内容插入到数据库中

    PHP实现单击"添加"按钮增加一行表单项,并将所有内容插入到数据库中 效果图: html+jquery: <html> <head> <meta ht ...

  10. html数据插入到数据库,将数据插入到数据库中:text和html格式

    将数据(文本和HTML格式)插入到mysql字段LONGTXT中时出现问题. 这里是错误将数据插入到数据库中:text和html格式 public 'error' => string 'You ...

最新文章

  1. 控制行输入以下两句命令16倍速播放青年大学习
  2. 三两下实现NLP训练和预测,这四个框架你要知道
  3. frac函数_20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子
  4. 解决mysql插入中文出现错误Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F...‘ for column ‘course‘ at row 1
  5. 网络监控系统安装的4种方式,安防必备
  6. 心理学系列:《乌合之众》读书笔记
  7. 窥探Swift之新添数据类型元组与可选值
  8. python win32api sendmessage_python win32api模拟后台鼠标点击的问题。
  9. API卡_什么是图形API,API又是用来做什么的,其实它是一名出色的翻译官
  10. Origin图选择性粘贴到word出现问题,提示‘word出现问题’解决方法
  11. 技术书是怎么写出来的
  12. Java101___一个牛人给JAVA初学者的建议
  13. sbuf.st_size 为负数
  14. 【C语言总结】C语言预处理器
  15. qq邮箱 实现邮件的发送
  16. 应广单片机定时器中断配置
  17. python 中文名称文件保存
  18. 计算机组成置NVCZ为零,《计算机组成原理》第3版PPT电子课件教案-第四章 指令系统.ppt...
  19. Hexo(sakura)主题Mashiro大佬同款LOGO修改方法
  20. typescript (简写Ts)

热门文章

  1. Python 持久存储
  2. conda create出现连接问题_解决conda创建新环境慢 conda install 速度慢 报错问题
  3. ios 通知接收两次_苹果健康体系又进一步,iOS 14.3支持有氧适能通知
  4. python自动写工作日志_python自动化执行重复工作
  5. win10下安装maven
  6. Python--文件修改
  7. MySQL编译安装时常见错误分析
  8. linux挂在Windows操作系统共享文件夹
  9. View Horizon Mirage安装手册(三)——Mirage Management安装
  10. 关于弱电工程图纸的几个常见问题