JSP随机抽取数字,但不重复,程序不能运行,具体代码如下:

ResultSet ret=stmt.executeQuery(sql1);
List mylist=new ArrayList(); //生成一个集合
while(ret.next()){
mylist.add(ret.getInt("ID")); //将id放入集合中
}
int[] rds=new int[choosenum]; //定义rds数组,这里数据库中的ID值都不相同。
for(int i=0;i<choosenum;i++)
{
int rannum=(int)(Math.random()*mylist.size());
//out.println(mylist.get(rannum));
rds[i]= Integer.parseInt( mylist.get(rannum).toString()); //针对每次生成的随机数,从数组中取值,放入数组中。
mylist.remove(rannum); //每次取走的值,从mylist中移除,保证了下次不重复。
}
for (int i=0;i<10;i++)
{
out.println(rds[i]); //然后打印出值
}

汗!起先写的,还以为你调好了呢!如下,相应地数据库名,用户名,密码改下。myeclipse中新建一个项目,添加一个页面,将以下代码写入,部署运行。<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jdbc连接数据库</title>
</head><body>
<%
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test","root","root");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from testdb");
List mylist=new ArrayList(); //生成一个集合
while(rst.next())
{
mylist.add(rst.getString("id")); //将id放入集合中
}int[] rds=new int[10]; //定义rds数组,这里数据库中的ID值都不相同。
for(int i=0;i<10;i++){
int rannum=(int)(Math.random()*mylist.size());
rds[i]= Integer.parseInt( mylist.get(rannum).toString()); //针对每次生成的随机数,从数组中取值,放入数组中。
mylist.remove(rannum); //每次取走的值,从mylist中移除,保证了下次不重复。
}
for (int i=0;i<10;i++)
{
out.println(rds[i]); //然后打印出值
}
rst.close();
stmt.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</body>
</html>
结果图:
温馨提示:答案为网友推荐,仅供参考