以下代码,只能从数据库中取出前三条记录,现在我的想法是这样的,假如我数据库有10条记录,我想从这10条

以下代码,只能从数据库中取出前三条记录,现在我的想法是这样的,假如我数据库有10条记录,我想从这10条中随即抽取出三条记录,这个应该怎么实现?

public List<Student> listStudent() {
String hql="from Student";
List<Student> list=this.getHibernateTemplate().find(hql).subList(0, 3);

return (List<Student>)list;
}

可以考虑用数据库中的随机排序的方法来实现:

select top 3 colmname from tablename order by newid()

这个语句会在MSSQL中将所得到的记录进行随机排序,而每次会得到不同的结果!追问

hibernate用SQL就没意思了啊

追答

你说的那个我不懂,hibernate好像是一个连接数据库的轻量级框架,不知道是否这样,既是一个框架,它本身是脱离不了JAVA语言的,只是对JDBC的一个封装而已,既如此那么也不可能脱离SQL的,一个框架不可能连数据存储等底层的东西也封装在框架中的。

从语言层面上看,你的String hql就是用于向数据库发送查询的一个变量,只不过这个封装得到相对的一部分信息后,重新生成新的SQL语句与数据库通信,是这个原理吧?

那个,不才想hql变量既是生成标准SQL语句的变量,为什么其中不可能使用类似where,order by之类的东西呢?我的意思是string hql="from Student order by newid()"这样的语句是否能编译通过?所以我只是提示你数据库语句,只不过在不同的框架中进行不同的构造罢了!

本人不才,不会JAVA,只是玩.net的,所以如果不对请不要见怪,只是,我就是不相信说用哪一个语言或框架就否决SQL没有意思。这句不敢苟同。就算在.net 中也有类库如sqlclinet等,还有人开发的一个叫什么SQLHelper的类等都是对数据连接等进行了封装,但没有能够就不考虑SQL而只考虑这个一类的!

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-05
不知道你想实现什么 ,可以取十条之后 再在list里边随即取3条 ,不知道这么说行不行,java新人一起交流,呵呵
第2个回答  2011-04-05
Math.random();不是能随机生成一个数?把他生成的取出来就行吧?追问

是把查出来的数据进行随机抽取哦,例如,我数据库表中有10条数据,我想从这10条数据随机抽取3条,看清楚,是随机!!!不是抽取前三条数据!

第3个回答  2011-04-05
安装一次操作系统软件,这样可以解决很多问题!

装系统的话可以这样操作:
格式化 和分区 过程 是在你装系统的时候实现的。

先开机 设定 bios 光驱启动

重装电脑的操作系统,是我们每一个电脑爱好者必须经历的苦难过程。不自己动手装电脑系统和应用程序的电脑操作者,至多是个菜鸟。(当然就是能熟练装这些东东,也不一定不是菜鸟,比如我只是一个比较肥胖的菜鸟而已)那么,装电脑的操作系统和应用程序要注意些什么问题呢?

1.选择操作系统

这个即使我不说,多数人因为这个操作系统的功能、视觉效果以及对各种应用程序的兼容性是其它系统所不能比拟的。如果你有银子(或者说你的银子太多,烧的不行),你最好买正版的Windows XP(以下简称XP),再加装它的sp1补丁;这是目前最稳定、兼容性最好的操作系统。XP的最低要求配置是CPU 1000mhz,内存256M。不要理会微软说的最低要求配置(微软要求的配置太低)。如果你的电脑的配置低于这个标准,最好不要装XP系统。否则,你反而是坐上牛车了,你就慢慢摇吧!

不过,现在的老机子除了主板不好进行硬件升级,其它的像CPU、内存条、声卡、显卡、调制解调器等都可以升级,主板可以下载主板生产厂家同型号及同版本号的主板BIOS最新驱动程序;对于主板的BIOS升级,我把我的笔记本和台式机都升了,没有质量十分好的软驱和软盘,千万不要盲目行动。主板升级的直接效果并不明显,对于速度几乎没有什么影响,如果你的电脑主板有USB1.1功能并且能用,就不要追新了。主板追新出了问题,只有去专门的电脑维修站重整)

当然,像我说的,除了主板硬件不升级,其它即插即用硬件全部升级,也要不少银子的。我估计2000-2500元RMB吧,这样你的电脑就是很高的配置了:CPU1.5G以上,内存256M以上,56K猫,显卡缓存32M。不过,不升级硬件也可以,那样我们只好就用Windows 98或Windows Me了。这两个系统没有实质性的区别。Me的界面好看,但Me的系统还原功能实在不能恭维。二者共同的毛病是不稳定,死机;热启动、reset是每次上机不可缺少的保留节目。系统经常丢失文件,并且随着多次装卸应用软件,系统变得越来越慢、越不稳定直至重装系统。

不管那个系统的光盘,都可以在盗版光盘市场买到。(4-5元/张)在光盘市场,98和Me都是绝对的正版,没有什么好讲的。微软给XP增加了激活功能(所谓激活,就是你装完XP后必须在30天之内通过网络或电话与微软联系激活你的系统,否则只能用30天你就进不去系统了。只有在安全模式下可以进入。这是微软反盗版的一种手段。),目前XP最好的激活方法有三种,⑴算号激活。网上有国外黑客破解编写的XP算号器,你可以直接下载,里面有详细的使用方法。采用这种方式激活的系统绝对是正版,但网站搜索Windows XP算号器)⑵使用俄罗斯黑客采用电话激活(不用真打电话)。该激活方式简单易行,支持系统升级,目前没有发现任何方面的问题)⑶OEM激活。该方法比较麻烦,需要修改BIOS驱动程序,建议一般人不要采取这种方法。(的论坛)

最好、最简单的并且支持升级的激活方法是俄罗斯黑客电话激活方式。我即采用这种激活方式将我的系统升级为XP sp1版本了。

据说,微软的最新操作系统Windows 2003将于二○○三年五月二十二日发布。让我们拭目以待,尽快能享受到微软最新操作系统给我们带来的极速快乐。^_^

至于有人要问,你为什么不提Windows 2000呢?尽管2000的稳定性较好(强于98和Me,次于XP),但兼容性太次,好多应用软件不能在2000上运行。所以,在有XP的情况下,谁装2000,谁就是傻子。^_^

2.装系统前的备份工作

你的电脑上不可避免地存有很多资料和信件。我们不能因为装系统就把这些东西丢掉吧?怎么办?我们可以百分之百地把它们备份在其它盘上。如果你的电脑已经爬下了,连机也开不了,那么你手动关机;再开机,按住F8进入安全模式然后进行以下操作。

⑴在本机盘上备份

如果你的机子的文件系统是FAT形式、并且你以前至少把硬盘已经分为两个以上的区,你就可以把你的信件、邮箱帐户、通讯薄、数据材料统统存在非系统盘上(你总不至于没有分区吧?如果你只用一个区,那你不是一个超级懒汉,就是一个超级菜鸟^_^)

如果你用的是系统自带的Outlook Express做你的邮件终端接发,你可以把信件、通讯薄和帐户全数导出。

信件导出:打开OE,点击工具,点开选项,再点击维护,点击存储文件夹,点击更改,改设为非系统盘上,如D:我的信件。确认。

帐户导出:打开OE,点击工具,再点击帐户,点邮件,一个一个选中邮件,点击右边的导出,设置非系统盘文件夹,如:D:我的帐户;保存。

通讯薄导出:打开OE,点击文件,再点击导出,点击通讯薄,选择存储位置,如D:我的帐户,保存。

我的文档导出:右键点击桌面我的文档,再点击属性,点击移动,设置非系统盘如D:我的文档,确定。

⑵如果你有活动硬盘,你最好把上面说的内容存到活动硬盘上。只是把存储地点的盘符改为活动硬盘的盘符。(现在,一个活动硬盘大约1000元左右(40G的容量,USB2.O兼容USB1.1)如果你现在的系统是98,你就得装USB驱动,否则不能认活动硬盘;如果是Me或2000、XP,就不用装USB驱动了。顺便说一下活动硬盘,有了这个玩意,连笔记本都可以不拿了。平时把我们要用的图、数据存进去,随身一带,方便之至!现在,没有电脑的单位恐怕不多了吧,不管我们去哪里办事带上它就可以了。

⑶ 输入法词库记忆备份

如果你操作这台电脑有一段时间了,你必然使用文字输入了。这样,你的语言习惯和用词习惯电脑已经适应和记忆了。我们可以把字库文件备份出来,该文件的位置:

c:windowssystem32IME

总之,我们在使用电脑时,尽量不要在系统盘(一般就是C:盘)上放重要数据。我的信件、(我用的邮件客户端是BECKY2.05.10)、资料和常用软件分别存放在D:、E:和活动硬盘上。

3.CMOS设置

一般的电脑在正常使用时都应该把第一启动引导顺序设置为分区时的激活盘,其它如光驱、软驱就不要搞启动检测了。这样,既有利于启动速度,又能延长光驱、软驱的使用寿命;同时没有了启动检测时“嘎吱嘎吱”的噪音。但是,我们装系统时可就不能从硬盘的激活盘启动了。怎么办?如果你的硬盘的操作系统是FAT系统,你最好格式化一下装系统的盘,如一般是C:盘,清除长时间留下的垃圾。这就要设置CMOS启动引导顺序的第一位是A:盘了(也就是软驱)。

格式化的具体操作:

关机,软驱放入98启动软盘,启动,进入DOS状态,选择2(带光驱启动),在c:后输入:(不包括前面的冒号)format c:;然后回答系统提问输入Y,回车,一路回车就可以了。

如果你的硬盘的文件系统是NTFS或者你不想格式化硬盘的,或者已经格式化完了,你必须把你的COMS设置为光驱为第一引导启动。

CMOS设置:(以Award主板为例,其它主板亦基本相同)

启动电脑按DEL键(有的电脑是F2键),进入CMOS设置,进入BIOS FEATURES SETUP,再进入Boot Sequence按上下键选CD-ROM,C,A,再按ESC键、F10键、Y、回车即可,手动关机或放入安装光盘后按reset键。(安装光盘最好是有自启动功能的)

4.装系统(下面以安装WINDOWS XP为例)

我选的是没有任何破解的、完整的Windows XP安装光盘。启动电脑,当出现“光盘启动按任意键”字样时回车,开始复制安装程序,检验系统盘位置的容量和格式,这些都可以不理;出现对系统硬盘的文件格式的选择时最好选FAT32,不要选NTFS。尽管NTFS文件体系对操作系统的稳定性和速度以及硬盘管理功能有很大的提高,但NTFS只是支持以NT为内核的Windows NT、Windows2000、WindowsXP,不支持DOS、WindowsME、Windows98。所以,对于我们经常玩软件的人并不适合。一旦出现系统崩溃,在NTFS下有可能要通过重新分区、格式化等手段来重新安装系统,只要重新分区,硬盘上的资料和数据就彻底完蛋了。(这是我吃了无数亏得来的教训,当年在使用Windows2000时,我就采用了NTFS系统,主要用以防止CIH病毒对系统和硬件的超级破坏,可现在防、杀CIH太容易了)相反,在FAT32文件系统下,只要有一张98或Me的启动盘格式化一下C盘就可以重装系统了,也不怕丢失所有硬盘上的数据和资料。

接着,复制系统文件,准备安装等步骤。出现选择时区、语言等对话框,这就不用我说了吧。耐心等待。

如果是在DOS下原始安装XP,则必须先把smartdrv.exe文件(在Win98的安装目录下,名为smartdrv.exe)拷入98启动软盘,安装之前运行一下就可以大幅度提高安装速度。(我在安装之前有时候运行一下,有时候忘了,可我没有感觉到有多大的差别,也可能我的两台电脑比较新?说不清)

如果你是在原有系统不变、系统硬盘上有操作系统的情况下重新安装XP,在安装的过程中会出现《升级/全新安装》对话框,此时你必须选择升级,除非你想在你的机子上安装双操作系统。

要求输入序列号时输入以下号码:

BX6HT-MDJKW-H2J4X-BX67W-TVVFG

这个注册码基本都能安装(我最少试了5、6种XP安装光盘了)

一般安装时间不超过60分钟。

安装完毕,选择现在不激活以后激活,按下一步,至少填入一个名字,如JixXP,一路回车键,可以了。

现在开始激活系统:我采用的是俄罗斯黑客的激活办法。见下面使用说明:

方法:把SETUPREG.HIV复制到%systemroot%system32目录下

覆盖原文件(我倒是找不到这个SETUPREG.HIV,直接粘贴上去的),

重启,按F8进入安全模式,以管理员身份登录,

运行WINXP_CRK.EXE,重启,进入WinXP,在要求激活时选择“电话激活”,在每个方框中都填入“401111”----激活成功!

阿榕软件园 arongsoft.com ;;提供下载

不用多说了吧。我只告诉你一个字:棒!!!

4.必要的设置和部分驱动程序的安装

⑴ 进入《控制面板》(或鼠标右键点击我的电脑、再点击属性),打开《系统》,选《系统还原》,选择关闭所有盘的还原功能。

⑵ 在《系统》里,点《高级》,重新设置《错误报告》(不关了这个选项,老是出现向比尔.盖兹告状的申请单,烦死人了)

⑶ 一般笔记本电脑声卡、显卡、猫的驱动XP里全有,并且基本能自动安装。我重点说一下台式机。

点开《控制面板》,点《系统》,再点《硬件》,点《设备管理器》,把里面有问号和感叹号的项目全部卸载,点确定关了《系统》项目。

取出你随机带得驱动程序盘,放入光驱里;再点控制面板里面的《添加硬件》,出现选择对话框时,你如果知道你的驱动程序的目录和位置,你可以选手动选择;如果不知道,选择自动。

声卡、显卡、猫安装驱动都是一样的做法。如果你没有XP的专用驱动程序,有两个办法能解决你的问题。其一,你可以用该即插即用设备的Win2k(也即Windows2000)驱动程序进行安装,XP和2K的内核一样,驱动程序没有区别。在安装过程中可能会出现没有微软签名的对话框,不要理它,直接点“是”;如果你连Win2k的驱动也没有,那就只有另一个办法了,先找出你的设备的生产厂家和型号,一般说明书上或板、卡上面都把厂家和型号打印上去了,然后从能上网的电脑上进厂家的网站,选中型号后直接下载。再用软盘或优盘或活动硬盘转存在你的电脑上,进行安装。(软盘容量小,恐怕放不下。)

⑷ 显卡设置

点控制面板里的显示,其它选项可根据你的电脑情况做相应的选择。最好象素选800×600,32真彩色。点《高级》,点击《监视器》,屏幕刷新频率阴极射线管显示器选75HZ或85HZ,液晶显示器选60HZ。

⑸ 设置网络连接

宽带设置我就不说了,只说一下拨号上网的设置。

点控制面板里的《网络连接》,点《创建一个新连接》,点《连接Intelnet》,点《手动设置》,点《调制解调器》,再添名称如:***,电话号码添16900,密码添16900,验证密码再添16900。就可以上网了。⑹ 声音设置

点控制面板里的《声音和音频设备》,选中《把音量图标放入任务栏》,点击应用;至于其它选项,可以根据你的电脑的实际情况和你自己的爱好进行相关设置。

5.恢复信箱、帐号和通讯薄

按照导出时的菜单步骤,将原来的“导出”换为“导入”进行操作就可以了。(不用重复了吧,呵呵,要是反操作不了,你就实在太笨了,也就不要看这篇文章了)

6.恢复字库

将备份字库信息打开,如果有恢复程序就直接点击,如果没有就直接代替。我这主要是针对智能ABC和紫光拼音输入法。其它输入法我没有用过,不熟悉,你最好自己研究研究

7.我的文档重新设置

重复导出时的步骤,将两个文件夹合并、链接起来就可以了。

8.建议你的电脑上装以下实用软件:

⑴ Winzip8.1 (通用压缩软件)

⑵ WinRAR3.2 (最好的压缩软件)

⑶ Microsoft OfficeXP (国际通用办公系统)

⑷ AcadSee5.0 (图形识别软件)

⑸金山词霸2003 (即时英汉翻译软件)

⑹金山毒霸2003 (最好的国产杀毒软件)

⑺Winamp2.8 (最好的Mp3音乐播放软件)
⑻ WinDVD4.0 (DVD、VCD音像播放软件)

⑼FlashGet1.40 (最好的网上下载工具)

以上软件都是我比较喜欢的。一般都能从网上下载。像Office XP、金山词霸、金山毒霸等这样的软件太大,最好买光盘安装。

除此而外,最好装一个系统优化的软件。国产的系统优化软件里首推Windows优化大师(作者:鲁锦)和超级兔子魔法设置(作者:蔡旋)。WindowsXP本身的优化性极强,再进行系统优化已没有什么实际意义。但WindowsXP对CPU的二级缓存没有设置,可以用这两个软件中的任何一个优化一下。如我的笔记本的CPU二级缓存是256K,我没有进注册表重新设置,而是用兔子魔法设置的。

最近,我在网上发现Windows优化大师的作者鲁锦说,优化大师的破解版在60天左右会发作,破坏系统。所以,我就再也

不敢用优化大师了。我劝朋友们都不要用破解版了,小心坏了系统。用的话,花上30元RMB,不算贵。

9.最后一项,进行磁盘碎片整理

打开《我的电脑》,鼠标右键点击c:,点击《属性》,再点击《工具》,点击《开始整理》,最后点击《碎片整理》,等待整理完毕后点击确认。
第4个回答  2011-04-06
有两种方案
第一种方法 把数据库中id取出来放进一个数组里边,用随机函数随机取出数组中的三个id,用随机函数, 然后根据这三个id分别取出你想要的表内容,不过有点麻烦
第二种
就是数据库里边有随机函数,楼主可以看下这个网页
http://www.chr114.com/blogs/20100311/00523539.shtml

以下代码,只能从数据库中取出前三条记录,现在我的想法是这样的,假如...
可以考虑用数据库中的随机排序的方法来实现:select top 3 colmname from tablename order by newid()这个语句会在MSSQL中将所得到的记录进行随机排序,而每次会得到不同的结果!

MySQL怎么查询数据库中的前几条记录并返回呢
整个代码,没有什么明显的错误,TOP 10这种写法也应该是可以的,当然我也赞同楼上“limit 0,10”这种写法。我要说的是,SQL语法,有“WHERE 1”这种写法吗?我没有试过,按我的理解WHERE条件不能这样省略吧?总得有个完整的表述吧,是某条件对于1?还其它?应该是“WHERE ID = 1”或者“WHERE I...

我想让我的数据库里只保存最新的十条记录,超过十条,删除最旧的一条
写个触发器吧。在每次插入记录的时候触发,用count(*)判断是否等于10.大于10的话就按id删除最后那条记录就可以了

求间歇滚动的代码,从数据库中读取n段内容,之后间歇滚动显示。_百度知 ...
onmouseout="iScrollAmount=1"> 轻轻的我走了,正如我轻轻的来; 我轻轻的招手,作别西天的云彩。 那河畔的金柳,是夕阳中的新娘; 波光里的艳影,在我心头荡漾。 软泥上的青荇,油油的在水底招摇; 在康河的柔波里,我甘心作一条水草。 那榆荫下的一潭,不是清泉是天上的虹; 揉碎在浮...

数据库SQL语言
3 90 3 904 110 4 110四 某中学数据库中由一张表:学生选课表:由板及代码、班内学号、姓名、科目、成绩五个属性组成,关系模式为SC(BJDM,BNXH,XSXM,KM,CJ) ,其中(BJDM,BNXH)为主码。说明:每个学生每门科目存放一个记录,科目有“语文”、“数学”、“外语”三门。1 找出每个班级的班级代码、学生人数...

SQL 语句 select sum(a) from table1 where b=3
17、说明:随机取出10条数据select top 10 * from tablename order by newid()18、说明:随机选择记录select newid()19、说明:删除重复记录Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)20、说明:列出数据库里所有的表名select name from sysobjects where...

查找表中的最后10条记录的SQL怎么写
1、排序方式有 从大到小,与从小到大。默认的排序方工为从小到大。所以,取最后的10各记录,也就是“取前 10 条记录,按从大到小排序”。2、SQL Server中示例代码如下(其它数据库依这个方向):SELECT TOP 10 * FROM 表1 ORDER BY 标志ID DESC3、如果你非纠结着,找出最后10条,还要依从小到...

sql select ,代码如下,从数据库中选取变量。想让选出的代号为“GFCY...
select * from (select 37 as sortid, '' as 序号, '建筑、安装工程费合计(含税):' as 定额号, '' as 名称, '' as 单位, 0 as 数量, 0 as 基价, round(dej) as 基价合计, 0 as 市价, round(scj) as 市场合计, round(schs) as 除税 ...

Java代码中查出数据库中有一条记录,但是把sql拼接好去数据库里面直接查...
可能是之前对该表执行的事务未完成,导致有锁,所以用sql又查不出来,但是java代码能查出来有一条数据。建议先在数据库中查询是否有未完成的事务及是否有锁,如果有,先commit,提交,确保表没锁,这样java查出来就正常了。

有一个mysql的数据表,我要随机抽取10条记录,用什么方法最好。_百度知...
1.通过MYSQL内置的函数来操作,具体SQL代码如下:SELECT * FROM tablename ORDER BY RAND() LIMIT 10 2.不要将大量的工作给数据库去做,这样会导致数据库在某一集中并发时间内锁死并阻塞。建议通过PHP随机生成一下1-X(总行数)之间的数字,然后将这10个随机数字作为查询条件,具体语句如:SELECT *...

相似回答