2011-04-19 71 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上运行(比如在应用程序服务器集群)和数量需要在整个群集唯一的,那么这个解决方案将无法工作。您需要使用外部计数器,例如上面提到的基于数据库的解决方案。