欢迎光临
我们一直在努力

一个生成唯一序号的服务,虽然技术不先进,但是很好用-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

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;    }  }

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个生成唯一序号的服务,虽然技术不先进,但是很好用-JSP教程,Java技巧及代码
分享到: 更多 (0)

相关推荐

  • 暂无文章