日期:2014-05-20  浏览次数:20787 次

请教高手们一个java算法问题
我现在有这样一个需求,数据库中有一个字段 是需要累加的例如:这个字段有一个值是001 下次我需要这个字段的值是002
 
再取下一个就是003这样递归的增长 最大值到999 这个用java怎么实现呀?
急用谢谢了!  


------解决方案--------------------
假设你的表名为:MAXKEY、最大号记录字段为:MAXVALUE
你写一个主键生成类,在该类中按照取得主键调用顺序加入以下几个方法:

Java code

//首先在你的数据源上开始事务,下面整个过程全部是一个事务:
//其次锁定你的表记录行:
private void lock(Connection connection, String tableName, String 其他条件) throws Exception {
        String updateStr =
            " UPDATE MAXKEY SET MAXVALUE=MAXVALUE WHERE tableName=? AND 其他条件=?";//行级锁
        PreparedStatement stmt = connection.prepareStatement(updateStr);
        stmt.setString(1, tableName);//用这个表名为区分可以为多个表保存最大主键
        stmt.setString(2, 其他条件);
        num2

------解决方案--------------------
TEXT2008HAW-027增长为TEXT2008HAW-028 :

String key = "TEXT2008HAW-027";
String temp = key.split("-")[1];
temp = Long.toString(Long.parseLong(temp) + 1);
key = key.split("-")[0] + temp;