首页 > 解决方案 > 如何使自动递增数字Java

问题描述

我正在制作自动编号的方法,但该编号仅卡在编号 P-011 上。如何解决?

private void outomatic_number(){
        try {
            open_db();
            String sql="select right (no_rm,2)+1 from pasien";
            ResultSet rs=stm.executeQuery(sql);
            if(rs.next()){
                rs.last();
                String no=rs.getString(1);
                while (no.length()<3){
                    no="00"+no;
                    txtno.setText("P-"+no);}
                }
            else
            {
               txtno.setText("P-001"); 
            }
            } catch (Exception e) 
            {
        }
    }

标签: javamysql

解决方案


既然你打电话rs.last(),似乎很可能有不止一条记录pasien

您需要记住,如果没有子句,SQLSELECT语句会以任意顺序返回数据。ORDER BY

由于您没有ORDER BY子句,因此“最后一个”记录不一定是编号最高的记录。

添加一个ORDER BY子句来修复代码。


推荐阅读