📄 idgenerator.java
字号:
package com.easyjf.dbo;
/**
*
* <p>
* Title: EasyDBO主键生成器
* </p>
*
* <p>
* Description: 该类主要实现主键生成器IIdGenerator接口,实现EasyDBO主键生成器
* </p>
*
* <p>
* Copyright: Copyright (c) 2006
* </p>
*
* <p>
* Company:EasyJF开源团队-EasyDBO项目组
* </p>
*
* @author 大峡
* @version 1.0
*/
public class IdGenerator implements IIdGenerator {
private EasyJDB db;
public void setDb(EasyJDB db) {
this.db = db;
}
// private static IdGenerator idGenerator=null;
public IdGenerator() {
}
/**
* 检测id值是否已经存在
*/
private boolean checkExist(Long id, Class classType, String column) {
boolean r = false;
Object obj = db.get(classType, id);
if (obj != null) {
r = true;
}
return r;
}
/**
* 根据类classType产生一个主键值
*/
public synchronized Object generator(Class classType) {
return nextValue(classType, null);
}
/**
* 根据类classType及列名产生一个唯一主键值
*/
public Object generator(Class classType, String column) {
return nextValue(classType, column);
}
/**
* 具体产生主唯一键值的算法
*
* @param classType
* @param column
* @return
*/
private Long nextValue(Class classType, String column) {
Long cid = new Long(System.currentTimeMillis());
boolean exist = checkExist(cid, classType, column);
if (exist) {
return nextValue(classType, column);
} else {
return cid;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -