java - 如何使用Java实现数字自动递增

标签 java mysql

我正在制作自动号码的方法,但该号码仅固定在号码 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) 
            {
        }
    }

最佳答案

自从您调用 rs.last() 以来,pasien 中似乎有不止一条记录。

您需要记住,如果没有 ORDER BY 子句,SQL SELECT 语句将按任意顺序返回数据。

由于没有 ORDER BY 子句,“最后”记录不一定是编号最大的记录。

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

关于java - 如何使用Java实现数字自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58429532/

相关文章:

java - 找不到文本文件抛出异常

mysql - 在 INSERT INTO 问题中使用两个 SELECT FROM 语法

mysql - SQL 计数、求和和分组依据

php - 重用 php 准备语句将只返回 mysql 表的最后一个条目

java - 在 Eclipse 中为 ANT 配置 Java 版本

java - 保留:连接被拒绝:连接

java - 实现在接口(interface)和父类中声明的方法

java - Android AsyncTask onPostExecute 调用晚了?

php - 导航栏中的引导多级下拉菜单有不需要的空白空间

mysql - 带子查询和的 Doctrine DQL 查询