2011-04-19 70 views

回答

2

您可以使用java.util.Random,使用nextInt()方法和簡單地添加1000它,如果你想讓它從1000首發,你可以簡單地先不拿爲1000

請參見

+0

java.util.Random中不能得到解決我正在如下「> – Akshatha 2011-04-19 05:45:36

+0

我已經進口但我仍得到相同的錯誤 – Akshatha 2011-04-19 05:56:20

+0

'<%@頁面進口=」 java.util.Random中的」%>'使用, – 2011-04-19 05:57:34

0

可以使用AU db的T_INCREMENT功能。 MySQL數據庫生成唯一的ID。

create table `TableName`( 
    `v` int UNSIGNED NOT NULL AUTO_INCREMENT , 
    PRIMARY KEY (`v`) 
) Engine='Default' auto_increment=1000 comment='' row_format=Default 
3

如果要產生一定範圍內的隨機整數,你可以使用下面的代碼片段:

public int generateRandomNumber(int start, int end){ 
    Random random = new Random(); 
    long fraction = (long) ((end - start + 1) * random.nextDouble()); 
    return ((int)(fraction + start)); 
} 

例如,爲了獲得1000和8888內的隨機整數,你可以調用generateRandomNumber(1000, 8888);

如果你想寫一個JSP內部的所有Java代碼(很難,我不建議這種方法),你可以像這樣創建一個JSP頁面。每次刷新後你可以得到一個隨機整數。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ page import="java.util.Random"%> 
<%! 
    public int generateRandomNumber(int start, int end){ 
     Random random = new Random(); 
     long fraction = (long) ((end - start + 1) * random.nextDouble()); 
     return ((int)(fraction + start)); 
    } 
%> 

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>TEST RANDOM NUMBER</title> 
    </head> 
    <body> 
     <h1>Generate Random Number:<%=generateRandomNumber(1000,8888)%></h1> 
    </body> 
    </html> 
+0

比你這麼多,但我們如何才能生成唯一的序列號 – Akshatha 2011-04-19 06:52:26

+0

不客氣,你可以使用Integer ArrayList來保存生成的隨機數。生成隨機數後,首先使用contains()來檢查ArrayList是否已經有這樣的數字。如果是,則再次生成它。否則,你把數字放到ArrayList – 2011-04-19 07:04:22

+0

而不使用數組有沒有一種簡單的方法來生成唯一的序列ID – Akshatha 2011-04-19 11:30:08

2

這些答案都是關於隨機數字的 - 這個OP詢問的是唯一的數字。使用隨機數字,你仍然有可能重複(儘管這個機會肯定很小)

一個簡單的方法來獲得一個唯一的數字將只是有一個類,有一個靜態同步方法,增加一個靜態聲明的計數器並返回它。種子計數器在1000

我會實現這個在Java類,而不是JSP。正如Jogar早些時候指出的那樣,將原始的Java放入JSP中很快就會失去控制。

如果您的應用程序可能最終會超過一個JVM上運行(比如在應用程序服務器集羣)和數量需要在整個羣集唯一的,那麼這個解決方案將無法工作。您需要使用外部計數器,例如上面提到的基於數據庫的解決方案。