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 2025-02-18 20:36  Chihirooo  阅读(19)  评论(0)    收藏  举报

导航