java数据库唯一id生成工具类
程序员文章站
2023-12-12 16:34:40
本文实例为大家分享了java数据库唯一id生成工具类的具体代码,供大家参考,具体内容如下
import java.io.file;
import java.te...
本文实例为大家分享了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 {} }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读