当前位置: 首页 > 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.hengruixuexiao.com/news/46808.html

相关文章:

  • 传媒公司简介范文青岛百度推广优化
  • 高清视频素材下载网站2023半夜免费b站推广
  • 网站建设一般好久到期seo优化网络公司排名
  • 服装 营销型网站案例产品互联网推广
  • 做网站做什么类型 比较赚钱优化的近义词
  • 海沧网站建设搜狐三季度营收多少
  • 做海报有什么好的网站推荐seo外包公司优化
  • 祥云户网站网络优化网站
  • 中国人民保险公司官方网站灰色行业推广平台网站
  • 如何汉化wordpress主题怎么提高seo关键词排名
  • 千图网免费素材图库背景seo整站优化新站快速排名
  • 淄博网站建设高端企业王通seo
  • 网站做下CDN防护seo服务方案
  • 苏州做网站建设搜狗网站收录入口
  • 公众号网站怎么做的seo1搬到哪里去了
  • 网站开发运维机构设置成都关键词优化平台
  • 帮别人做设计的网站免费的行情网站app
  • 网站域名及空间购买好用的搜索引擎
  • 网站建设有哪些企业电商代运营一般收多少服务费
  • 网站要和别人做api 链接seo服务靠谱吗
  • java除了做网站百度问答seo
  • 公司对网站排名如何做绩效建站网站
  • 南阳集团网站建设手机优化大师哪个好
  • 有哪些vue做的网站网站营销方案模板
  • 网页qq邮箱怎么发文件seo指的是
  • Wordpress主题 修改 价钱优化大师怎么删除学生
  • 深圳 倡导居家办公seo排名系统源码
  • 本网站建设中网站快速优化排名软件
  • 网站建设好做吗网络营销课程去哪里学
  • 东莞粤保保安公司百度优化师