JiveJdon Community Forums
在线166人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 11 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
SunOne

发表文章: 21
注册时间: 2003年06月12日 21:14
给他发消息
关于Hibernate的List 发表: 2003年09月11日 15:08 回复
请问如下两种方法,哪种较好:
1.
Query q = session.createQuery("from Cat as c");
List l = q.list();
for (int i=0; i< l.size(); i++) {
Cat c = (Cat)l.get(i);
int id = c.getId();
String name = c.getName();
System.out.println(id+" "+name);
}

2.
Query q = session.createQuery("select c.id, c.name from Cat as c");
List l = q.list();
Object[] row = new Object[2];
for (int i=0; i< l.size(); i++) {
row = l.get(i);
Integer id = (Integer) row[0];
String name = (String) row[1];
System.out.println(id+" "+name);
}
yehs220

发表文章: 101
注册时间: 2003年01月04日 12:50
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月11日 15:20 回复
2比1快

建议加上jcs,用
Query q = session.createQuery("from Cat as c");
q.iterate();





yangstarfly

发表文章: 15
注册时间: 2003年09月08日 12:32
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月11日 16:47 回复
请问怎么加jcs
bruce

发表文章: 191
注册时间: 2003年05月28日 09:53
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月11日 21:39 回复
在hbm文件中,加入
<jcs-cache usage="read-write"/>
bruce

发表文章: 191
注册时间: 2003年05月28日 09:53
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月11日 21:42 回复


<jcs-cache usage="read-write"/>
yangstarfly

发表文章: 15
注册时间: 2003年09月08日 12:32
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月12日 16:26 回复
谢谢bruce
neuhawk

发表文章: 48
注册时间: 2003年08月24日 22:01
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月12日 16:38 回复
不知道为什么,我用jcs跟没有用没有什么区别。
chinahero

发表文章: 91
注册时间: 2003年03月03日 23:44
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月17日 10:51 回复
是啊,我发现我在hbm.xml中写不写上[jcs-cache usage="read-only"/]查询时间都一样

第一次查询
Begin time is 0
Hibernate: select post0_.id as x0_0_ from post post0_
Hibernate: select post0_.id as id, post0_.userid as userid from post post0_ where post0_.id=?
End time is 2281

第二次查询
Begin time is 0
Hibernate: select post0_.id as x0_0_ from post post0_
End time is 2625

第三次查询
Begin time is 0
Hibernate: select post0_.id as x0_0_ from post post0_
End time is 1766

时间差不多吧,不过第二次第三次没出现sql语句,是不是jcs起作用了?但是我明明在post.hbm.xml中没有使用[jcs-cache usage="read-only"/]这个tag


附读函数
public void readDB(Session session){
String sql = "select post from com.test.my.Post as post";
long begintime = System.currentTimeMillis();
System.out.println("Begin time is 0 ");
try{
Query query = session.createQuery(sql);
//List myList=query.list(); //据说用List Jcs无效
Iterator myIter=query.iterate();
}catch (HibernateException ee){
ee.printStackTrace();
}
long endtime=System.currentTimeMillis();
System.out.println("End time is "+(endtime-begintime));
}
robbin

发表文章: 590
注册时间: 2003年06月18日 09:32
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月17日 12:31 回复
找一个字段非常多,数据量比较大的表测试。

你的JCS已经开始工作了。
robbin

发表文章: 590
注册时间: 2003年06月18日 09:32
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月17日 12:34 回复
只有Iterator能读JCS,List不会去读JCS,你可以到Hibernate中文论坛精华区看我的Hibernate Iterator JCS分析贴。
chinahero

发表文章: 91
注册时间: 2003年03月03日 23:44
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月17日 13:13 回复
那篇文章我看了,有一些问题
1.我在对应的类的描述文件hbm.xml中没加[jcs-cache "read-only"]这个Hibernate会自动调用jcs来cache吗?

2.Iterator myIter=Query.Iterator()后,遍历这个Iterator特别慢,如果已经放到cache中去了,为什么还会这么慢

谢谢
robbin

发表文章: 590
注册时间: 2003年06月18日 09:32
给他发消息
Re: 关于Hibernate的List 发表: 2003年09月17日 13:32 回复
1. 不会

2. 可能数据量不够,性能差距拉不开。我在数据量不是很大的情况下测试MySQL, Iterator JCS速度不如JDBC,你可以到我那里看看性能版我贴的一个测试结果。

BTW. 建议去Hibernate中文论坛讨论,这里我照顾不太到。
这个主题有 11 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam