easyCode的type mapper列类型属性类型映射问题
首先,对于easyCode的安装和使用的小例子,这个文章写的很不错:https://mp.weixin.qq.com/s/x4uqNXunpwNeRJuwRyOvxw,我就不一一赘述了。
这个教程中@mapper和@mapperscan二取一就好;springboot2.x中,只要加入devtools的jar包,默认就是optional为true;默认自带的Hikari性能也不错,如果不是项目强制要求,建议就用hikariCP。
然后我发现有一些人反馈说对于mysql中的类型bit(1),没有被映射为Boolean,好像配置了也不行,这里经过我测试之后,给出下面两种解决方案:
第一种方法:
直接在easyCode提供的修改窗体中修改:
由于这种方式需要每次对每个表格都修改一次,所以显得很麻烦。
这里介绍第二中方法:
使用正则表达式进行匹配:由于我这里已经设置好了很多正则匹配方式,比如mysql的bit(1)设置为java的Boolean,接下来我展示如何把bit(x),x是整数,匹配到Byte[]:
这里特别注意三点:
1:匹配的时候要使用正则表达式进行匹配
2:Type Mapper的列表顺序有规定:细规则匹配在粗规则匹配的前面,否则就匹配不到,如上面动图中,bit(\(1\))? 来匹配bit(1)设置为Boolean,而bit(\(\d+\))?则用来匹配bit(1),bit(2),bit(3,bit(4).....设置为Byte[],这里如果把bit(\(1\))?放在bit(\(\d+\))?后面,则永远是以bit(\(\d+\))?来匹配bit(1),则bit(1)也被匹配成Byt[]了,则不符合我们的预期。
3.对于unsigned zerofill等字段,在写正则匹配的时候也要加入,否则匹配不上
综上所述,如果对于一些用的比较少的子段,直接在config table中修改即可,对于经常使用的字段,就在Type Mapper中修改。