赞
踩
需要添加雪花ID生成策略文件和修改的文件:
PfUsers.java文件:
- @Id
- @GeneratedValue(generator = "snowflake")
- @GenericGenerator(name = "snowflake", strategy = "com.ruoyi.service.SnowflakeIdGenerator")
- private Long id;
PfUsersController.java添加部分:
- @RequiresPermissions("pfuser:pfusers:add")
- @Log(title = "用户管理", businessType = BusinessType.INSERT)
- @PostMapping("/add")
- @ResponseBody
- public AjaxResult addSave(PfUsers pfUsers)
- {
- // 生成雪花ID并设置到实体对象中
- Serializable id = SnowflakeIdGenerator.getInstance().generate(null, pfUsers);
- pfUsers.setId((Long) id);
-
- // 调用服务层插入数据
- int result = pfUsersService.insertPfUsers(pfUsers);
- return toAjax(result);
- }
PfUsersServiceImpl.java文件:
- @Override
- public int insertPfUsers(PfUsers pfUsers)
- {
- // 生成雪花ID并设置到实体对象中
- Serializable id = SnowflakeIdGenerator.getInstance().generate(null, pfUsers);
- pfUsers.setId((Long) id);
-
- return pfUsersMapper.insertPfUsers(pfUsers);
- }
-
PfUsersMapper.xml文件:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.ruoyi.system.mapper.PfUsersMapper">
-
- <resultMap type="PfUsers" id="PfUsersResult">
- <result property="id" column="id" />
- <result property="nickname" column="nickname" />
- <result property="sex" column="sex" />
- <result property="phone" column="phone" />
- <result property="wechat" column="wechat" />
- <result property="password" column="password" />
- <result property="regtime" column="regtime" />
- <result property="lasttime" column="lasttime" />
- </resultMap>
-
- <sql id="selectPfUsersVo">
- select id, nickname, sex, phone, wechat, password, regtime, lasttime from pf_users
- </sql>
-
- <select id="selectPfUsersList" parameterType="PfUsers" resultMap="PfUsersResult">
- <include refid="selectPfUsersVo" />
- <where>
- <if test="nickname != null and nickname != ''"> and nickname like concat('%', #{nickname}, '%')</if>
- <if test="phone != null and phone != ''"> and phone = #{phone}</if>
- </where>
- </select>
-
- <select id="selectPfUsersById" parameterType="Long" resultMap="PfUsersResult">
- <include refid="selectPfUsersVo" />
- where id = #{id}
- </select>
-
- <insert id="insertPfUsers" parameterType="PfUsers">
- insert into pf_users (id, nickname, sex, phone, wechat, password, regtime, lasttime)
- values (#{id}, #{nickname}, #{sex}, #{phone}, #{wechat}, #{password}, #{regtime}, #{lasttime})
- </insert>
-
- <update id="updatePfUsers" parameterType="PfUsers">
- update pf_users
- <trim prefix="SET" suffixOverrides=",">
- <if test="nickname != null">nickname = #{nickname},</if>
- <if test="sex != null">sex = #{sex},</if>
- <if test="phone != null">phone = #{phone},</if>
- <if test="wechat != null">wechat = #{wechat},</if>
- <if test="password != null">password = #{password},</if>
- <if test="regtime != null">regtime = #{regtime},</if>
- <if test="lasttime != null">lasttime = #{lasttime},</if>
- </trim>
- where id = #{id}
- </update>
-
- <delete id="deletePfUsersById" parameterType="Long">
- delete from pf_users where id = #{id}
- </delete>
-
- <delete id="deletePfUsersByIds" parameterType="String">
- delete from pf_users where id in
- <foreach item="id" collection="array" open="(" separator="," close=")">
- #{id}
- </foreach>
- </delete>
-
- </mapper>
-

SnowflakeIdGenerator.java 采用默认ID策略
- package com.ruoyi.service;
-
- import com.github.yitter.contract.IdGeneratorOptions;
- import com.github.yitter.idgen.YitIdHelper;
- import org.hibernate.MappingException;
- import org.hibernate.engine.spi.SharedSessionContractImplementor;
- import org.hibernate.id.IdentityGenerator;
-
- import java.io.Serializable;
-
- public class SnowflakeIdGenerator extends IdentityGenerator {
- private static final short METHOD = 1;
-
- private static final SnowflakeIdGenerator INSTANCE = new SnowflakeIdGenerator();
-
- private SnowflakeIdGenerator() {
- init();
- }
-
- public static SnowflakeIdGenerator getInstance() {
- return INSTANCE;
- }
-
- public static void init() {
- IdGeneratorOptions options = new IdGeneratorOptions(METHOD);
- YitIdHelper.setIdGenerator(options);
- }
-
- @Override
- public Serializable generate(SharedSessionContractImplementor session, Object object) throws MappingException {
- Serializable id = YitIdHelper.nextId();
- if (id != null) {
- return id;
- }
- return super.generate(session, object);
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。