我要写个查询程序:select * from ff where rownum=<变量>,其中<变量>为<1000000的整数,我想随机取出100条,但要执行100次jt.queryForList("select * from ff where rownum=<变量>"),这就大大减缓了查询速度!我的意思是先把select * from ff where rownum=?预编译,再改变<变量>的值就行了,请问,那语句咋写啊,急!!

解决方案 »

  1.   

    类 org.springframework.orm.hibernate3.support
    继承 HibernateDaoSupport
    用其中方法 getHibernateTemplate() 
    得到一个  HibernateTemplate
    HibernateTemplate具有增删改等对数据库操作的方法
    例如find
    Object[] args={object,...}
    getHibernateTemplate().find("from   ff   where   rownum= ?",args)
    详细请看API
    如果要按照你说的方法实现利用hibernate可以实现,spring估计只能最多到上面那个样子
    得到session后
    session.createQuery("from  ff as f   where   f.rownum=:rownum").setEntity("rownum",rownum);
    详细请看hibernate API
      

  2.   

    spring 实现了对hibernate的封装,而hibernate又实现了对JDBC的清量级封装
    只要在类里面继承了HibernateDaoSupport就可以了