java sequence

作者:原创时间:2022-04-19
文档

java sequence是什么?让我们一起来了解一下吧!

java sequence是指java程序中的数据库。sequence是数据库按特定规则自动增加的数字序列,自动增加因此得出的数据不会出现重复。

sequence主要有以下两个功能:

1. 它可以作为代理主键,唯一识别。

2. 它可以记录数据库里的最新变化的语句,并且随着变化而发生更新。

Sequence的使用方法有:

create seqence sequence_name
[start with n1]           ----------------->n1到n5都是整数;start with 生成的第一个n1值[increment by n2]         -----------------> increment by n2 递增量,可以为正整数或负整数,指明每一次增加多少
[maxvalue n3|no maxvalue] ----------------->maxvalue最大值,no maxvalue用于指定序列没有上限
[cache n5|no cache]       ----------------->cache 用高速缓存中可以预分配的序列号个数,默认是20。 如果缓存中的序列号没有用完就关闭数据库等其它原因。

java中实现sequence,以Mysql为例:

package sequence;
 
import java.util.HashMap;
import java.util.Map;
import java.sql.SQLException;
 
/**
* @des: Java实现的Sequence工具
*/
public class SequenceUtils {
    private static SequenceUtils _instance = new SequenceUtils();
    private Map keyMap = new HashMap(20); //Sequence载体容器
    private static final int POOL_SIZE = 10;      //Sequence值缓存大小
 
    /**
     * 禁止外部实例化
     */
    private SequenceUtils() {
    }
 
    /**
     * 获取SequenceUtils的单例对象
     * @return SequenceUtils的单例对象
     */
    public static SequenceUtils getInstance() {
        return _instance;
    }
 
    /**
     * 获取下一个Sequence键值
     * @param keyName Sequence名称
     * @return 下一个Sequence键值
     */
    public synchronized long getNextKeyValue(String keyName) {
        KeyInfo keyInfo = null;
        Long keyObject = null;
        try {
            if (keyMap.containsKey(keyName)) {
                keyInfo = keyMap.get(keyName);
            } else {
                keyInfo = new KeyInfo(keyName, POOL_SIZE);
                keyMap.put(keyName, keyInfo);
            }
            keyObject = keyInfo.getNextKey();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return keyObject;
    }
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java serializable java serializable接口 java serialversionuid java setlayout java platform java settimeout java plug-in java sftp java plugin java pojo java portal java sha256加密 java shuffle java simhash java simpledateformat java sizeof java sm3加密 文章千古事得失寸心知是谁的名句 诚信的名言名句 关于读书的名言名句 java separator java semaphore java selenium java selector java script java sandbox java rxjava java runtime.exec java runnable java rtp java rsa私钥加密 java rsa公钥加密 java pipeline java ping java phoenix java paypal java path java rsa加密 java rotate java reverse