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

鲜花网站建设网页游戏大全首选

鲜花网站建设,网页游戏大全首选,河源新闻头条最新新闻,微指数查询入口项目应用中#xff0c;曾有以下一个场景#xff1a;接口中要求发送一个int类型的流水号#xff0c;由于多线程模式#xff0c;如果用时间戳#xff0c;可能会有重复的情况(当然概率很小)。所以想到了利用一个独立的自增的sequence来解决该问题。当前数据库为#xff1a;m…项目应用中曾有以下一个场景接口中要求发送一个int类型的流水号由于多线程模式如果用时间戳可能会有重复的情况(当然概率很小)。所以想到了利用一个独立的自增的sequence来解决该问题。当前数据库为mysql由于mysql和oracle不太一样不支持直接的sequence所以需要创建一张table来模拟sequence的功能理由sql语句如下第一步创建--Sequence 管理表DROP TABLE IF EXISTS sequence;CREATE TABLE sequence (name VARCHAR(50) NOT NULL,current_value INT NOT NULL,increment INT NOT NULL DEFAULT 1,PRIMARY KEY (name)) ENGINEInnoDB;第二步创建--取当前值的函数DROP FUNCTION IF EXISTS currval;DELIMITER $CREATE FUNCTION currval (seq_name VARCHAR(50))RETURNS INTEGERLANGUAGE SQLDETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT BEGINDECLARE value INTEGER;SET value 0;SELECT current_value INTO valueFROM sequenceWHERE name seq_name;RETURN value;END$DELIMITER ;第三步创建--取下一个值的函数DROP FUNCTION IF EXISTS nextval;DELIMITER $CREATE FUNCTION nextval (seq_name VARCHAR(50))RETURNS INTEGERLANGUAGE SQLDETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT BEGINUPDATE sequenceSET current_value current_value incrementWHERE name seq_name;RETURN currval(seq_name);END$DELIMITER ;第四步创建--更新当前值的函数DROP FUNCTION IF EXISTS setval;DELIMITER $CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER)RETURNS INTEGERLANGUAGE SQLDETERMINISTICCONTAINS SQLSQL SECURITY DEFINERCOMMENT BEGINUPDATE sequenceSET current_value valueWHERE name seq_name;RETURN currval(seq_name);END$DELIMITER ;第五步测试函数功能当上述四步完成后可以用以下数据设置需要创建的sequence名称以及设置初始值和获取当前值和下一个值。INSERT INTO sequence VALUES (TestSeq, 0, 1);----添加一个sequence名称和初始值以及自增幅度SELECT SETVAL(TestSeq, 10);---设置指定sequence的初始值SELECT CURRVAL(TestSeq);--查询指定sequence的当前值SELECT NEXTVAL(TestSeq);--查询指定sequence的下一个值在java代码中可直接创建sql语句查询下一个值这样就解决了流水号唯一的问题。贴出部分代码(已测试通过)public void testGetSequence() {Connection conn JDBCUtils.getConnection(url, userName, password);String sql SELECT CURRVAL(TestSeq);;PreparedStatement ptmt null;ResultSet rs null;try {ptmt conn.prepareStatement(sql);rs ptmt.executeQuery();int count 0;while (rs.next()) {count rs.getInt(1);}System.out.println(count);} catch (SQLException e) {e.printStackTrace();} finally {JDBCUtils.close(rs, ptmt, conn);}}ps在应用中还有一种用java代码去实现模拟自增sequence的方式具体思路是创建一张存放sequence的table然后通过java调用sql语句去查询和修改这个table中指定sequence名称的值这种方式请加上synchronized。具体代码这里就不上传了因为实现了未去测试过。
http://www.pierceye.com/news/450160/

相关文章:

  • 专业营销型网站定制wordpress菜单绑定模板
  • 网站建设公司找哪家好石家庄网站改版
  • 建立一个网站要多久网页界面ps制作步骤
  • 珠海网站建设费用自己做网站切入地图
  • 个人在线视频播放网站搭建软件属于网站开发吗
  • 小米的企业网站建设思路c2c的网站
  • 网站设计书籍做网站的基础
  • 买下云服务器怎么做网站官方网站怎么查询
  • 手机版企业网站php西宁做网站公司排名
  • 微网站如何做推广做淘宝客网站需要备案吗
  • 天津网站制作重点windows与wordpress
  • 可以查企业备案的网站吗佛山住房和城乡建设部网站官网
  • 和初中生做视频网站怎么进入追信魔盒网站开发软件
  • 邯郸开发网站有哪些阳江市房产信息网
  • 快速网站推广公司丹阳房产网二手房
  • 做一个卖东西的网站黄村做网站的公司
  • 网站增长期怎么做广州seo推广优化
  • 怎么做拍卖网站吗免费网站推广入口
  • 农产品网站建设的主要工作岳阳seo招聘
  • 每年网站备案抽查惠州营销网站建设
  • 四川网站建设seo友汇网网站建设
  • 企业家居网站建设做公司网站方案
  • 特性设计的网站营销型网站建设的五力原则
  • 网站布局设计工具装修室内设计培训学校
  • 哈尔滨网络科技公司做网站中国建设官方网
  • 紫川网站建设做画找图网站
  • 郑州快速建站公司合肥学做网站app的学校
  • 除了做视频网站还能做什么网站wordpress手机站如何做
  • 域名注册最好的网站人才网站
  • 网站建设咨询云尚网络中铁十二局出国招工