阜康基业,中国广告门户网,2013年公务员考试成绩查询
本文实例为大家分享了java数据库唯一id生成工具类的具体代码,供大家参考,具体内容如下
import java.io.file; import java.text.simpledateformat; import java.util.date; import java.util.map; import java.util.random; import java.util.uuid; import org.springframework.dao.emptyresultdataaccessexception; import org.springframework.jdbc.core.jdbctemplate; public class uniqueidutil { private static long adjust = 1l; private static long nextid = 0l; private static long lastid = -1l; private static long randomleng = 6l; private static jdbctemplate jdbctemplate; private static simpledateformat dateformat = new simpledateformat("yyyymmddhhmmss"); private static void init() { try { jdbctemplate = (jdbctemplate)apputil.getbean("jdbctemplatesn"); string str2 = appconfigutil.get("genid.adjust"); if (str2 != null) { adjust = integer.parseint(str2); } } catch (exception localexception) { adjust = 1l; string str3 = appconfigutil.get("genid.adjust"); if (str3 != null) { adjust = integer.parseint(str3); } } } private static void getnextidblock() { if (jdbctemplate == null) { init(); } long locallong = long.valueof(-1l); integer localinteger = integer.valueof(-1); string str1 = "select bound,incremental from sys_db_id t where t.id=?"; string str2 = "update sys_db_id set bound=? where id=?"; try { map localmap = jdbctemplate.queryformap(str1, new object[] { long.valueof(adjust) }); locallong = long.valueof(long.parselong(localmap.get("bound").tostring())); localinteger = integer.valueof(integer.parseint(localmap.get("incremental").tostring())); nextid = locallong.longvalue(); lastid = locallong.longvalue() + localinteger.intvalue(); jdbctemplate.update(str2, new object[] { long.valueof(lastid), long.valueof(adjust) }); } catch (emptyresultdataaccessexception localemptyresultdataaccessexception) { insertnewcomputer(); } } private static void insertnewcomputer() { try { lastid = 10000l; string str = "insert into sys_db_id (id,incremental,bound) values(" + adjust + ",10000," + lastid + ")"; jdbctemplate.update(str); } catch (exception localexception) { localexception.printstacktrace(); } } public static synchronized long genid() { if (lastid <= nextid) { getnextidblock(); } long l = nextid++; return l + adjust * 10000000000000l; } public static final string getguid() { uuid localuuid = uuid.randomuuid(); return localuuid.tostring(); } public static final string getrandom() { random localrandom = new random(); string str1 = ""; for (int i = 0; i < randomleng; i++) { string str2 = string.valueof(localrandom.nextint(10)); str1 = str1 + str2; } return str1; } public static string genorderno() { long l = genid(); string str = dateformat.format(new date()); return str + l; } public static void main(string[] paramarrayofstring) throws exception {} }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
apollo与springboot集成实现动态刷新配置的教程详解
网友评论