数据库主键生成器java代码
来源:互联网 发布:linux 防御ddos 编辑:程序博客网 时间:2024/05/21 21:45
package com.aspboy.base.database.util;
import java.util.HashMap;
public class KeyGenerator
{
private static KeyGenerator keygen=new KeyGenerator();
private static final int POOL_SIZE=20;
private HashMap keylist=new HashMap(10);
private KeyGenerator()
{}
public static KeyGenerator getInstance()
{
return keygen;
}
public synchronized int getNextKey(String keyName)
{
KeyInfo keyinfo;
if (keylist.containsKey(keyName))
{
keyinfo=(KeyInfo)keylist.get(keyName);
System.out.println("key found");
}
else
{
keyinfo=new KeyInfo(POOL_SIZE,keyName);
keylist.put(keyName, keyinfo);
System.out.println("new key created");
}
return keyinfo.getNextKey();
}
}
package com.aspboy.base.database.util;
import com.aspboy.base.database.DBBean;
public class KeyInfo
{
private int keyMax;
private int Keymin;
private int nextKey;
private int poolSize;
private String keyName;
//private int times ;
public KeyInfo(int poolSize,String keyName)
{
this.poolSize=poolSize;
this.keyName=keyName;
loadFromDB();
//times++;
//System.out.println("get keyvalue from db tiems=="+times);
}
public int getKeyMax() {
return keyMax;
}
public int getKeymin() {
return Keymin;
}
private void loadFromDB()
{
String sql1="update tb_key set KeyValue=KeyValue+"+poolSize+" where keyName='"+keyName+"'";
DBBean.executeSql(sql1);
String sql2="select KeyValue from tb_key where keyName='"+keyName+"'";
int keyFromDB=DBBean.getIntSingle(sql2);
keyMax=keyFromDB;
Keymin=keyFromDB-poolSize+1;
nextKey=Keymin;
}
public int getNextKey() {
if (nextKey>keyMax)
{
loadFromDB();
System.out.println("get keyvalue from db");
}
return nextKey++;
}
}
调用 方法: KeyGenerator.getInstance().getNextKey(keyName);
keyName 为表名称
相关数据库结构:
表tb_key
字段如下:
KeyValue:pk大小
keyName:表名
- 数据库主键生成器java代码
- 关于自定义代码生成器(续)---SQL2008查询数据库字段主键,外键,唯一键等相关属性
- 主键生成器
- 主键生成器
- 主键生成器
- java的代码生成器
- java代码生成器
- java代码生成器
- Java代码生成器
- java代码生成器
- 关于java代码生成器
- java代码生成器
- Hono代码生成器(JAVA)
- java代码生成器
- 关于java代码生成器
- java代码生成器
- java 代码生成器
- Java代码生成器
- 聊聊Portal 说说门户 (一)
- jdbc封装工具类
- JNDI使用小指南
- 第十三课 异常
- 数据库连接DBSource.java类
- 数据库主键生成器java代码
- OpenGL学习2
- Asp.Net获取电脑名,IP地址及当前用户名,操作系统,浏览器,.NET版本等信息的方法
- webwork框架action工具类
- LRU算法简单例子
- OpenGL学习4
- 第十四课 集合框架
- Servlet简单教程
- 基于Servlet的Google Earth之旅