·您的位置: 首页 » 资源教程 » 编程开发 » JAVA、JSP » 一个生成唯一序号的服务,虽然技术不先进,但是很好用

一个生成唯一序号的服务,虽然技术不先进,但是很好用

类别: JAVA教程  评论数:0 总得分:0

package com.highcom.seqgen.dao.jdbc;

import java.sql.*;import javax.sql.*;

import org.apache.commons.logging.*;import org.springframework.beans.factory.*;import org.springframework.context.*;import org.springframework.jdbc.core.*;import org.springframework.jdbc.object.*;import com.highcom.seqgen.dao.*;import com.highcom.seqgen.domain.*;

public class SequenceDaoJdbcImpl    implements SequenceDao, InitializingBean {

  private DataSource dataSource;  private static Log logger = LogFactory.getLog(SequenceDaoJdbcImpl.class);

  //  SequenceQuery sequenceQuery;  SequenceUpdate sequenceUpdate;  SequenceInsert sequenceInsert;  //  protected static final String INSERT_SQL =      "insert into sequence(seq_name,seq_value) values( ? , ? )";  protected static final String UPDATE_SQL =      "update sequence set seq_value = ? where seq_name = ?";  protected static final String SELECT_SQL =      "select seq_name,seq_value from sequence where seq_name =?";

  public SequenceDaoJdbcImpl() {

  }

  public int getSequence(String seq_name) {    int result;    Object obj = sequenceQuery.findObject(new Object[] {seq_name});    if (obj == null) {      sequenceInsert.insert(seq_name, 0);    }

    Sequence seq = (Sequence) sequenceQuery.findObject(new Object[] {seq_name});    sequenceUpdate.update(seq.getName(), seq.getValue() + 1);    result = seq.getValue() + 1;    return result;  }

  public void afterPropertiesSet() throws Exception {    if (dataSource == null) {      logger.error("Must set dataSource bean property on " + getClass());      throw new ApplicationContextException(          "Must set dataSource bean property on " + getClass());    }    //    sequenceQuery = new SequenceQuery(this.dataSource);    sequenceUpdate = new SequenceUpdate(this.dataSource);    sequenceInsert = new SequenceInsert(this.dataSource);  }

  public void setDataSource(DataSource dataSource) {    this.dataSource = dataSource;  }

  ///////////////////////jdbc内部类  class SequenceInsert      extends SqlUpdate {    public SequenceInsert(DataSource dataSource) {      super(dataSource, INSERT_SQL);      declareParameter(new SqlParameter(Types.VARCHAR));      declareParameter(new SqlParameter(Types.INTEGER));      compile();    }

    public void insert(String seqName, int segValue) {      Object[] objs = new Object[] {          seqName, new Integer(segValue)};      super.update(objs);    }  }

  class SequenceUpdate      extends SqlUpdate {    public SequenceUpdate(DataSource dataSource) {      super(dataSource, UPDATE_SQL);      declareParameter(new SqlParameter(Types.INTEGER));      declareParameter(new SqlParameter(Types.VARCHAR));

      compile();

    }

    public void update(String seqName, int segValue) {      Object[] objs = new Object[] {          new Integer(segValue), seqName};      super.update(objs);    }  }

  class SequenceQuery      extends MappingSqlQuery {    public SequenceQuery(DataSource dataSource) {      super(dataSource, SELECT_SQL);      declareParameter(new SqlParameter(Types.VARCHAR));      compile();    }

    protected Object mapRow(ResultSet resultSet, int _int) throws SQLException {      Sequence seq = new Sequence();      seq.setName(resultSet.getString("seq_name"));      seq.setValue(resultSet.getInt("seq_value"));      return seq;    }  }

}



-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1