자바 데이터베이스 유일한 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
{}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.