求更新一个计数表(001 到 999)的java写法

postgre里建了个计数表 count 里边
只有一行一列 名叫counter的字段。
目的就是计数,记录当前发行的counter数(范围在000到999之间的,但是是character型的)

问题是:
从表中取到counter 值后,

如何用java程序写这个自增的循环的方法(999后再发行就是001)再把这个值改成 3位的字符串

注意postgre里是 000 001 到999这样的字符型,先需要转换类型。

谢谢~~~

[code="java"]public static void main(String[] args) {

String str="008"; // 首先查询出那个counter值

int s=Integer.parseInt(str);

s=++s;

s=s==1000?1:s;

String reslut=s>=10?(s>=100?s+"":"0"+s):"00"+s; // 计算 转型

System.out.println(reslut); // 然后存到 数据库! 已测试哈!试试看!

} [/code]

没测试好 呵呵 :wink:

[code="java"]
public static void main(String[] args) {
String str="008"; // 首先查询出那个counter值
int s=Integer.parseInt(str);
s=++s;
s=s==1000?1:s;
String reslut=s>10?(s>100?s+"":"0"+s):"00"+s; // 计算 转型
System.out.println(reslut); // 然后存到 数据库! 已测试哈!试试看!
}
[/code]

不太理解你的意思,按照你的说法,应该是从数据库去出来之后,然后加1存进去,然后每次加1判断是不是大于999了,是的话转成000开始

1.查询出count表中的counter的中大值
select max(trim(counter)) from count asc;
2.在Java中取到返回值为String类型的,将其转化为Integer类型并对其加1后转为String插入表中
java: 返回结果为result保存
Integer temp=Integer.parseInt(result);
sql: insert into count values(temp+"");

要想让他的值从001到999之间循环可以加上“temp=temp<999?temp:1;”若想保持“000”这种格式可以这样改
String val=temp<999?(temp<10?("00"+temp):(temp<100?"0"+temp:""+temp)):"001";

[quote]这么精炼 !!!测试成功 !!! [/quote]

偶尔 飘逸一下!呵呵!
有问题多多交流下

[code="java"]
import java.util.Random;
public class IdCode {
public static String getCode(String counter) {// 传入查询出的那个counter值
int temp = Integer.parseInt(counter);
String code = temp < 999 ? (temp < 10 ? ("00" + temp) : (temp < 100 ? "0" + temp : "" + temp)) : "001";
return code;// 将转换后的值返回去,测试时直接在main中调用方法;
}

public static void main(String[] args) {
    //随机产生0-1000的数据做为测试
    Random random=new Random();
    System.out.println(getCode(random.nextInt(1000)+""));
}

}[/code]
测试可以达到你说的效果,问题该解决了吧,整个类复制过去测试下吧。