当前位置: 首页 > news >正文

西红门做网站看设计案例的有哪些网站

西红门做网站,看设计案例的有哪些网站,深圳市建设网站公司,建设网站 备案1. IKeyGenerator主键生成 内置实现类,缺少mysql,因为mysql不支持序列,只能通过表模拟序列 H2KeyGenerator PostgreKeyGenerator KingbaseKeyGenerator 人大金仓的KES数据库 DB2KeyGenerator OracleKeyGenerator2. 新建表模拟序列 CREATE T…

1. IKeyGenerator主键生成

内置实现类,缺少mysql,因为mysql不支持序列,只能通过表模拟序列
H2KeyGenerator
PostgreKeyGenerator
KingbaseKeyGenerator	人大金仓的KES数据库
DB2KeyGenerator
OracleKeyGenerator

2. 新建表模拟序列

CREATE TABLE `dual_sequence` (`sequence_key` varchar(100) NOT NULL COMMENT '序列key(主键)',`step` int NOT NULL DEFAULT '1' COMMENT '步长',`start_value` bigint NOT NULL DEFAULT '0' COMMENT '开始值',`end_value` bigint DEFAULT NULL COMMENT '结束值',`ver` int DEFAULT NULL COMMENT '版本号',PRIMARY KEY (`sequence_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='临时序列表 '--添加一条记录
INSERT INTO dual_sequence
(sequence_key, step, start_value, end_value, ver)
VALUES('next.dbid', 1, 0, NULL, 0);

3.代码实现

MysqlKeyGenerator类

package com.yl.mybatisplus.plugin;import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
import com.yl.mybatisplus.mp.entity.DualSequence;
import com.yl.mybatisplus.mp.mapper.DualSequenceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class MysqlKeyGenerator implements IKeyGenerator {@Autowiredprivate DualSequenceMapper dualNextMapper;/*** 执行sql** @param incrementerName 序列名称(对应类上注解 {@link KeySequence#value()} 的值)* @return*/@Overridepublic String executeSql(String incrementerName) {// 先查询悲观锁,再修改乐观锁 保证查询的是最新的,如果更新失败,再次获取最新的DualSequence dualSequence = dualNextMapper.selectById("next.dbid");Long startValue = dualSequence.getStartValue();int number = dualNextMapper.updateById(dualSequence);//如果更新失败,再次执行查询获取最新的if (number == 0) {return executeSql(incrementerName);}//更新后的是最新的起始值作为idreturn String.valueOf(startValue+dualSequence.getStep());}
}

其他类

package com.yl.mybatisplus.mp.entity;import lombok.Data;/*** 临时序列** @author liuxubo* @date 2023/8/10 10:27*/
@Data
public class DualSequence {private String sequenceKey;private Integer step;private Long startValue;private Long endValue;private Long ver;
}package com.yl.mybatisplus.mp.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yl.mybatisplus.mp.entity.DualSequence;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;/*** <p>* 临时序列表 Mapper 接口* </p>** @author admin* @since 2021-03-27*/
@Mapper
public interface DualSequenceMapper extends BaseMapper<DualSequence> {/*** 使用悲观锁,防止查询时,其他线程修改** @param sequenceKey* @return*/@Select("select * from dual_sequence where sequence_key=#{sequenceKey} for update")DualSequence selectById(String sequenceKey);/*** 使用版本号修改** @param dualSequence 临时序列* @return*/@Update("update dual_sequence set start_value=start_value+step, ver=ver+1 where sequence_key=#{sequenceKey} and ver=#{ver}")int updateById(DualSequence dualSequence);
}
package com.yl.mybatisplus.mp.controller;import com.yl.mybatisplus.plugin.MysqlKeyGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** 临时序列** @author liuxubo* @date 2023/8/10 10:54*/
@RestController
@RequestMapping("/sequence")
public class DualSequenceController {@Autowiredprivate MysqlKeyGenerator mysqlKeyGenerator;@GetMapping("/nextId")public String nextId(){return mysqlKeyGenerator.executeSql(null);}}
http://www.yayakq.cn/news/757152/

相关文章:

  • 做网站网页版和手机版校友网站建设
  • 深圳制作网站的公司简介白云优化网站建设
  • 离石市网站建设公司国外vps国内vps
  • 百度推广做网站吗wordpress插件音乐播放器
  • 校园网站建设成本网站建设技术员
  • 企业电器网站建设方案宝安区做外贸网站的公司
  • 公司想做网站费用要多少钱免费一键生成个人网站
  • 淘宝官网首页手机版宁波做网站seo的
  • 网站建设怎么在图片上加字男科医院咨询免费
  • 铁岭网站seo医疗网站建设渠道
  • 怎么做私人网站深圳建站服务中心
  • 学校登陆网站制作北京网站建设价格天
  • 中山做公司网站勉县网站建设
  • 网站功能模块 分析网站服务器提供商
  • dedecms 手机网站模板企业网站建设 英铭
  • 龙湖地产 网站建设网站开发组合 lamp
  • 网站招聘顾问做啥的全能浏览器
  • 建设网站公司哪家性价比高员工微信管理系统
  • cms仿站建网站备案
  • html5网站开发公司破解版WordPress主题
  • 自己做公司的网站吗免费个人网站怎么建立步骤
  • 个人博客网站模板素材怀柔谁会网站开发
  • 网站的seo如何设计asp.net 网站开发的技术优势
  • 嘉兴快速建站合作权威的唐山网站建设
  • 网站购物功能如何做电子商务网站方案
  • 视频网站后台管理系统今天的新闻头条
  • 1g内存的服务器可以建设几个网站wordpress 报名表单
  • 网站建设哪家公司便宜手机价格大全
  • 个人网站取名西安seo网站推广优化
  • 刷赞网站推广qq宁海网站建设