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

永久免费自助建站源代码行业类网站模板

永久免费自助建站源代码,行业类网站模板,做篮球视频网站,开发cms网站系统项目应用中#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/160095/

相关文章:

  • 通辽建设网站知名品牌形象设计公司
  • 做一家网站费用网站建设有关的职位
  • 网站后台无编辑器扒人家网站做网站
  • 有什么网站做打印店网站开发计划甘特图
  • 网页模板好的网站好滑县网站建设服务
  • 做网站需要学会些什么建设网银登录官方网站
  • phpcms双语网站怎么做深圳做地铁的公司网站
  • 郑州的电子商城网站建设济南网站建设大标网络
  • 网站建设前端和后端的区别网站建设未来发展
  • 深圳网站制作公司建设网站seo视频狼雨seo教程
  • 建网站做优化重庆世界500强企业
  • 手机网站建设合同拼多多网店
  • 手机网站二级域名网站开发多少钱一个
  • 车险网站模版在线表白网页制作
  • 网站建设寻找可以途径wordpress 调试php代码
  • 济南优化seo网站建设微信公众号?
  • 武夷山网站推广三星网上商城下载
  • wap网站开发文案素材网站
  • 做网站需要用什么系统昆山张浦做网站
  • 钟祥建设局网站网页样式与布局
  • j建设银行信用卡网站天河外贸网站建设
  • 石家庄网站建设招商wordpress漫画主题
  • 河南省建设厅网站查询佛山著名网站建设公司
  • 山东搜点网站建设哪家公司做网站最好
  • 云购物网站建设wordpress离线编辑
  • 有没有网站开发团队郑州网站制作电话
  • 网站怎么做登陆免费虚拟机
  • 中国移动网站备案管理系统不能用科普网站建设的支持力度
  • 谁教我做啊谁会做网站啊企业网站模板seo
  • 自己建立一个网站需要什么wordpress 平衡插件