如何生成自动学生证号?

时间:2019-01-16 00:58:06

标签: java sql

我正在为学校创建一个系统,该系统需要自动生成具有类似xxxx-xxxx这样的格式的Student ID号,我需要在java netbeans中进行创建。学生证号必须是唯一的,并且是主键。

4 个答案:

答案 0 :(得分:1)

通常,您让数据库将键生成为数字值,然后在程序中设置其格式。

假设您有一个从数据库自动生成的主键,并且生成的键为18435876,则可以在Java中将其格式化为“ 1843-5876”。

答案 1 :(得分:0)

您可以先使用自动增量选项在数据库中创建id字段,然后以Java格式化

Integer id = 12345678; //id get from database
StringBuilder str = new StringBuilder(id.toString());
str.insert(str.length() - 4, '-');
System.out.println(str);

如果仅在Java应用程序中,则可以使用AtomicInteger并将其转换为字符串,然后按照上述代码格式设置 (请参见https://examples.javacodegeeks.com/core-java/util/concurrent/atomic/atomicinteger/java-atomicinteger-example/,但不建议使用此方法,因为如果系统关闭,则AtomicInteger值将重置为初始值)

答案 2 :(得分:0)

有很多方法可以做到这一点。

示例:您可以使用Snowflake生成唯一的ID,如果您获得ID,则可以执行任何操作!

答案 3 :(得分:0)

让自动生成的主键为:45445445。现在您要做的就是用Java对其进行格式化。

要进行格式化,可以使用.format().substring()StringBuilder()

        String PK = "45454545";


        String output =  String.format("%1$s-%2$s", PK.substring(0,4), 
        PK.substring(4));

String output =PK.substring(0,4) + "-" + PK.substring(4);

String output = new StringBuilder(PK).insert(4, '-').toString();