现在做一个在线考试系统,
要求,在10W道题目中随机抽出100道题来构成试卷来考试,
请高手给出一个解决方案!采用的是struts1.3 hiberante 3.2 spring 2.5
谢谢!

解决方案 »

  1.   

    在程序里随机生成题目的id No.再到数据库里面去查询,这样只能一条条查询,速度慢
    用存储过程比较好
      

  2.   

    这和hibernate好像没有必然联系................................................
      

  3.   

    要用存储过程,这个功能别用hibernate,速度上很慢
    如果实在要用,就用hibernate的原生SQL吧另外这个是SQL语句的问题,要看你是什么数据库
      

  4.   

    明白 你的意思,看看这里的文章吧,http://www.phome.asia/forum/thread/22945.html
      

  5.   

    何必这么麻烦那个经典的分页语句就可以达到目的
    select top 100 column_1 from table where column_1 not in (select top ? column_1 from table)?可以random 0到100000-100的值传进去,
    当然你可以不是每次100,那么分次呗
      

  6.   

    oracle:
    不用存储过程
    select *
    from
    (
        select * from your_table order by dbms_random.value
    )
    where rownum <=100
    如此进行500+次查询即可
      

  7.   

    我其实到现在为止用hql做已经实现(仅限sqlserver)
    比如:String hql = " from Question order by newId() ";
    Query q = super.getSession().createQuery(hql);
    q.setFirstResult(0);
    q.setMaxResults(5);
    List<Question> list = q.list();还想问一下:
    org.hibernate.criterion.Order 这个hibernate用来排序的Order类,是否有类型 newId()这样的随机排序的方法,可以让我实现随机排序。。?