mybatis升级mybatisPlus

最近公司升级项目,从mybatis升级到mybatisPlus,Plus的简洁,少写代码和mapper,让我们喜欢上了它。

再配合代码生成器,继承抽象基类,基本上CRUD不再需要撸代码。

但是也有更多的坑,因底层是利用反射来生成xml或者返回pojo,所以对于字段的驼峰命名更加不能乱来。

因为mybatisPlus是基于注解的方式来反射做映射,做需要在Mapper文件添加@Mapper注解,需要在entity添加@TableName。

另一个坑是mybatisPlus和sharding-jdbc的坑,sharding-jdbc对某些sql语法的支持不是很好,比如distinct就不支持。还有传值需要带着分片key,这无疑给老项目迁移升级带来了bug挑战。分片,还需要自己做ShardingStrategy。


另外一个问题,mysql时间格式是支持“0000-00-00 00:00:00”这种特殊的值的,但是java的date不支持。会在映射的时候报错,这时候需要在Jdbc配置上,加上一句 ?zeroDateTimeBehavior=convertToNull,即可解决。或者在mysql的timestamp格式的字段设置默认值为null或者CurrentTimestamp


例如


jdbc:mysql://${common.wcp.mysql.jdbc_host}/${common.wcp.mysql.jdbc_database}?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容