最近碰见了一个需求,我觉得在这里有必要和大家们分享一下:
需要一个13位编码,初始为0000000000001,增加需求+1为0000000000002。
在这里自己就陷入自己的牛角尖中,总是想着数据库如何存储这样的编码呢。
首先,13位要用bigint数据,不够前缀要填充零,在数据中设置当然可以实现,可是使用mybatis时,实体类设置成Long还是String呢?
如果Long那么前缀的零会自动消失,想要的功能不能实现。
如果是String类型不能数据绑定,这是会想用 标签进行数据映射处理,可是使用mybatis-plus呢,写个增删改查就要写一个映射会不会太麻烦了,写的多了自己就麻木了。
最终,跳出自己的牛角尖,为什么要在数据库中增加一个额外的字段呢,为什么不能用id字段来进行代替呢,只需要让id设置为自动递增,以及bigint类型即可,而我们进行数据处理时,在查出的数据上,进行一个封装,让其转化成13位的字符串即可。
代码: String result = String.format("%013d",Long.valueOf("123456789")+1);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)