⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyinfo.java

📁 功能是公安和学校的管理系统,用struts+hibernate+spring等匡架组成,在eclepse就能编译
💻 JAVA
字号:
package com.db;
import com.db.DBUtils;
import java.sql.*;

public class KeyInfo
{

    private int ikeymax; 
    private int ikeymin;
    private int ikey;
    private int ipoolsize;
    private String strkeyname;

    public KeyInfo(int poolSize, String keyName)
        throws KeyGenException
    {
        ipoolsize = poolSize;
        strkeyname = keyName;
        KeyGenerator();
    }

    public int getKeyMax()
    {
        return ikeymax;
    }

    public int getKeyMin()
    {
        return ikeymin;
    }

    public int getNextKey()
        throws KeyGenException
    {
        if(ikey > ikeymax)
            KeyGenerator();
        return ikey++;
    }

    private void KeyGenerator()
        throws KeyGenException
    {
        Connection conn=null;
        PreparedStatement stmt=null;
        ResultSet rs = null;
        try
        {
            conn=DBUtils.getConnection();
            
            String sql = "select curr_value from XT_ZDZZ where seq_name = ? ";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, strkeyname);
            rs = stmt.executeQuery();
            if(!rs.next())
              {
                System.out.println("------------------------------->键值不存在!");
                throw new KeyGenException("KeyGenerator001 Exception 键名("+strkeyname+")不存在");
              }
            DBUtils.closeResultSet(rs);
            DBUtils.closeStatement(stmt);
            
            sql = "update XT_ZDZZ set curr_value = curr_value + ?  where seq_name = ?";
            stmt = conn.prepareStatement(sql);
            stmt.setInt(1, ipoolsize);
            stmt.setString(2, strkeyname);
            stmt.executeUpdate();
            
            DBUtils.closeStatement(stmt);
            
            sql = "select curr_value from XT_ZDZZ where seq_name = ? ";
            stmt = conn.prepareStatement(sql);
            stmt.setString(1, strkeyname);
            rs = stmt.executeQuery();
            int keyFromDB = 0;
            if(rs!=null&&rs.next())
            {
                keyFromDB = rs.getInt(1);
                ikeymax = keyFromDB;
                ikeymin = (keyFromDB - ipoolsize) + 1;
                ikey = ikeymin;
            } else
            {
                throw new KeyGenException("KeyGenerator002 生成键值不成功!");
            }
            
            DBUtils.closeResultSet(rs);
            DBUtils.closeStatement(stmt);
        }
        catch(Exception ex)
        {
            throw new KeyGenException(null, null, ex);
        }
        finally
        {
           DBUtils.closeResultSet(rs);
           DBUtils.closeStatement(stmt);
           DBUtils.closeConnection(conn);
        }
    }
}

⌨️ 快捷键说明

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