ChihiroBlog

MP学习记录

  1. Mybatis和MybatisPlus依赖共存问题
    当同时导入Mybatis和MybatisPlus的依赖时就会出现以下问题

    问题原因:在使用MybatisPlus时不应引用MyBatis依赖,同时引用可能会导致重复的SqlSessionFactory等核心类冲突。
    解决方法:mybatis-plus-boot-starter内置Matis核心依赖,所以只保留MybatisPlus的依赖即可。

  1. 未知列名异常

    问题原因:在对数据库进行增删改查时,MP默认会将对应实体类所有字段作为数据库表的列名的查询字段,而有时实体类的字段是为了存储其他表数据,因此会查询不到这些字段。
    解决方法:对实体类中不是本表的字段加上@TableField(exist = false)注解。

  1. 新增数据时出现id值超出范围的异常

    问题原因:使用MP时,如果没有在实体类的id指定type,会默认使用雪花算法生成id,在生成十进制id的情况下,id的长度为18-19位,如果数据库表的id范围较小,就会出现该错误。
    解决方法:在实体类上添加@TableId注解,并指定type类型位AUTO,令id自增长。

    如果打算使用雪花算法生成id,可以修改数据库表的id字段长度限制。

  1. 时间无法转换错误

    问题原因:错误表明 JSON 反序列化失败,因为字符串 "2025-02-01 16:35:33" 无法直接转换为 LocalDateTime 类型。
    根本原因是日期时间格式不匹配:
  • 默认要求格式:LocalDateTime的JSON反序列化默认需要ISO-8601格式(如 2025-02-01T16:35:33),其中日期和时间之间用T分隔。
  • 实际传递格式:2025-02-01 16:35:33(日期和时间用空格分隔),所以导致解析失败。
    解决方法:在实体类对应的时间字段上添加@JsonFormat注解,并指定格式为与传递的时间相对应的格式“yyyy-MM-dd HH:mm:ss”。

  1. 分页查询分页参数无效

    问题原因:在使用MP的分页功能时需要对分页插件进行注册。
    解决方法:定义配置类,注册分页插件。

posted on   Chihirooo  阅读(2)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示