MyBatisPlus中雪花算法的抽离与使用

33 阅读1分钟

雪花算法在唯一id中目前最好的解决方案,因从需要将它处理出来。例如聊天室每个人的唯一id,数据一致性中的唯一id,key的唯一id等等.

还有baseMapper的唯一性,在原来的MP中要使用雪花算法必须使用baseMapper。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>
@Component
public class SnowflakeId<T> {

    /**
     * 一般传递到前端,用于用户id
     * @param entity
     * @return
     */
    public String RoomPeopleId(T entity){
        DefaultIdentifierGenerator generator = new DefaultIdentifierGenerator();
        return String.valueOf(generator.nextId(entity));
    }

    /**
     * 一般在数据库中作为数据的唯一id
     * @param entity
     * @return
     */
    public Long DataId(T entity){
        DefaultIdentifierGenerator generator = new DefaultIdentifierGenerator();
        return (Long)generator.nextId(entity);
    }
}

这个是mybatisPlus最基础的配置

mybatis-plus:
  mapper-locations: classpath:/mapper/**.xml
  type-aliases-package: com.trade.Entity.BO
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl