keyinfo.java

来自「《Java与模式》一书的源代码」· Java 代码 · 共 56 行

JAVA
56
字号
package com.javapatterns.keygen.ver4;

class KeyInfo
{
    private int keyMax;
    private int keyMin;
    private int nextKey;
    private int poolSize;
    private String keyName;

    public KeyInfo(int poolSize, String keyName)
    {
        this.poolSize = poolSize;
        this.keyName = keyName;
        retrieveFromDB();
    }

    public int getKeyMax()
    {
        return keyMax;
    }

    public int getKeyMin()
    {
        return keyMin;
    }

    public synchronized int getNextKey()
    {
        if (nextKey > keyMax)
        {
            retrieveFromDB();
        }
        return nextKey++;
    }

    private void retrieveFromDB()
    {
        String sql1 = "UPDATE KeyTable SET keyValue = keyValue + "
        + poolSize + " WHERE keyName = '"
        + keyName + "'";

        String sql2 = "SELECT keyValue FROM KeyTable WHERE KeyName = '"
        + keyName + "'";

        // execute the above queries in a transaction and commit it
        // assume the value returned is 1000

        int keyFromDB = 1000;

        keyMax = keyFromDB;
        keyMin = keyFromDB - poolSize + 1;
        nextKey = keyMin;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?