当前位置:   article > 正文

若依框架修改雪花ID主键_若依 雪花id

若依 雪花id

需要添加雪花ID生成策略文件和修改的文件:

PfUsers.java文件:

  1. @Id
  2. @GeneratedValue(generator = "snowflake")
  3. @GenericGenerator(name = "snowflake", strategy = "com.ruoyi.service.SnowflakeIdGenerator")
  4. private Long id;

PfUsersController.java添加部分:

  1. @RequiresPermissions("pfuser:pfusers:add")
  2. @Log(title = "用户管理", businessType = BusinessType.INSERT)
  3. @PostMapping("/add")
  4. @ResponseBody
  5. public AjaxResult addSave(PfUsers pfUsers)
  6. {
  7. // 生成雪花ID并设置到实体对象中
  8. Serializable id = SnowflakeIdGenerator.getInstance().generate(null, pfUsers);
  9. pfUsers.setId((Long) id);
  10. // 调用服务层插入数据
  11. int result = pfUsersService.insertPfUsers(pfUsers);
  12. return toAjax(result);
  13. }

PfUsersServiceImpl.java文件:

  1. @Override
  2. public int insertPfUsers(PfUsers pfUsers)
  3. {
  4. // 生成雪花ID并设置到实体对象中
  5. Serializable id = SnowflakeIdGenerator.getInstance().generate(null, pfUsers);
  6. pfUsers.setId((Long) id);
  7. return pfUsersMapper.insertPfUsers(pfUsers);
  8. }

PfUsersMapper.xml文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ruoyi.system.mapper.PfUsersMapper">
  6. <resultMap type="PfUsers" id="PfUsersResult">
  7. <result property="id" column="id" />
  8. <result property="nickname" column="nickname" />
  9. <result property="sex" column="sex" />
  10. <result property="phone" column="phone" />
  11. <result property="wechat" column="wechat" />
  12. <result property="password" column="password" />
  13. <result property="regtime" column="regtime" />
  14. <result property="lasttime" column="lasttime" />
  15. </resultMap>
  16. <sql id="selectPfUsersVo">
  17. select id, nickname, sex, phone, wechat, password, regtime, lasttime from pf_users
  18. </sql>
  19. <select id="selectPfUsersList" parameterType="PfUsers" resultMap="PfUsersResult">
  20. <include refid="selectPfUsersVo" />
  21. <where>
  22. <if test="nickname != null and nickname != ''"> and nickname like concat('%', #{nickname}, '%')</if>
  23. <if test="phone != null and phone != ''"> and phone = #{phone}</if>
  24. </where>
  25. </select>
  26. <select id="selectPfUsersById" parameterType="Long" resultMap="PfUsersResult">
  27. <include refid="selectPfUsersVo" />
  28. where id = #{id}
  29. </select>
  30. <insert id="insertPfUsers" parameterType="PfUsers">
  31. insert into pf_users (id, nickname, sex, phone, wechat, password, regtime, lasttime)
  32. values (#{id}, #{nickname}, #{sex}, #{phone}, #{wechat}, #{password}, #{regtime}, #{lasttime})
  33. </insert>
  34. <update id="updatePfUsers" parameterType="PfUsers">
  35. update pf_users
  36. <trim prefix="SET" suffixOverrides=",">
  37. <if test="nickname != null">nickname = #{nickname},</if>
  38. <if test="sex != null">sex = #{sex},</if>
  39. <if test="phone != null">phone = #{phone},</if>
  40. <if test="wechat != null">wechat = #{wechat},</if>
  41. <if test="password != null">password = #{password},</if>
  42. <if test="regtime != null">regtime = #{regtime},</if>
  43. <if test="lasttime != null">lasttime = #{lasttime},</if>
  44. </trim>
  45. where id = #{id}
  46. </update>
  47. <delete id="deletePfUsersById" parameterType="Long">
  48. delete from pf_users where id = #{id}
  49. </delete>
  50. <delete id="deletePfUsersByIds" parameterType="String">
  51. delete from pf_users where id in
  52. <foreach item="id" collection="array" open="(" separator="," close=")">
  53. #{id}
  54. </foreach>
  55. </delete>
  56. </mapper>

SnowflakeIdGenerator.java  采用默认ID策略

  1. package com.ruoyi.service;
  2. import com.github.yitter.contract.IdGeneratorOptions;
  3. import com.github.yitter.idgen.YitIdHelper;
  4. import org.hibernate.MappingException;
  5. import org.hibernate.engine.spi.SharedSessionContractImplementor;
  6. import org.hibernate.id.IdentityGenerator;
  7. import java.io.Serializable;
  8. public class SnowflakeIdGenerator extends IdentityGenerator {
  9. private static final short METHOD = 1;
  10. private static final SnowflakeIdGenerator INSTANCE = new SnowflakeIdGenerator();
  11. private SnowflakeIdGenerator() {
  12. init();
  13. }
  14. public static SnowflakeIdGenerator getInstance() {
  15. return INSTANCE;
  16. }
  17. public static void init() {
  18. IdGeneratorOptions options = new IdGeneratorOptions(METHOD);
  19. YitIdHelper.setIdGenerator(options);
  20. }
  21. @Override
  22. public Serializable generate(SharedSessionContractImplementor session, Object object) throws MappingException {
  23. Serializable id = YitIdHelper.nextId();
  24. if (id != null) {
  25. return id;
  26. }
  27. return super.generate(session, object);
  28. }
  29. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/470303
推荐阅读
相关标签
  

闽ICP备14008679号