sequencegenerator.java

来自「短信系统SMS:支持普通短信、长短信和wap push短信的发送。」· Java 代码 · 共 84 行

JAVA
84
字号
package com.ekun.common.db;

import com.ekun.common.log.*;
import java.sql.*;
/**
 * <p>Title: </p>
 * 取Oracle数据库Sequence值.单例模式。
 * <p>Description: </p>
 * <p>
 * 使用方法:
 * </p>
 * <p>
 * SequenceGenerator sequence = SequenceGenerator.getInstance();
 * int idSeq = sequence.getSequence("SeqName");
 * </p>
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author ekun
 * @version 1.0
 */
public class SequenceGenerator
{
  private static SequenceGenerator sequence = null;

  protected static Logger logger = LoggerFactory
      .getLogger(SequenceGenerator.class);

  static
  {
    sequence = new SequenceGenerator();
  }

  public static SequenceGenerator getInstance()
  {
    return sequence;
  }

  /**
   * 静态取序列号方法
   * @param seqName 序列名称
   * @return 序列号,类型int
   * @throws ServiceLocatorException
   */
  public static int getSequence(String seqName)
      throws DBAccessException
  {

    Connection conn = null;
    Statement statement = null;
    ResultSet rsCounter = null;
    int idSequence = -1;
    String sqlStr = null;

    try
    {
      conn = DBManager.getDBConn();
      sqlStr = "select " + seqName + ".nextval SID from dual ";
      statement = conn.createStatement();
      rsCounter = statement.executeQuery(sqlStr);
      if (rsCounter.next())
      {
        idSequence = rsCounter.getInt(1);
      }
    }
    catch (DBAccessException se)
    {
      throw new DBAccessException("A SQL error has occurred in DBManager.getDBConn()");
    }
    catch (SQLException e)
    {
      logger.error("A SQL error has occurred in DBManager.getDBConn()");
    }
    finally
    {
      ClearDBResource.closeStatment(statement);
      ClearDBResource.closeResultSet(rsCounter);
      ClearDBResource.closeConnection(conn);
    }
    return idSequence;
  }
}

⌨️ 快捷键说明

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