发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

困扰已久的效率问题.看过jive熟悉模式的老大们进..

2004-07-13 15:49
赞助商链接

就拿我们的J道论坛做例子

在列贴子主题列表处显示格式为
---------------------------------
贴名 发贴者
xxxxxxx xxxx
---------------------------------


贴子主题 数据库结构为
---------------------------------
贴名(threadName) 发贴者(userID)
varchar(255) int(9)
---------------------------------
注意,这里为了程序检索效率,我使用的不是发贴者用户名保存的,而是使用发贴用户ID保存(int型)

同时我做了User类,该类在例化后调用.getName()方法返回用户名
这个User类必定在调用getName()方法的时候会执行一次select句子来取得返回结果
比如
User my = new User(userID);
String name=my.getName();
那么这时肯定有个 select * from user where id=userID
然后把User类的变量赋值,比如用户名,用户性别,注册时间等等

那么,问题来了

我在列主题贴的时候,一页显示50条主题
比如就是
thread.列主题(50);
User author;
while(thread.Next()){
out.print("贴名:"+thread.getThreadName());
out.print("用户ID:"+thread.userID());
//问题从这里开始出现
author=new User(thread.userID());
out.print("用户名:"+author.getName());
}

当然,这个程序是可以执行的,但我在列主题的时候,为了取得用户名,不得不一次一次的new User(thread.userID())然后用getName()方法来取得用户名,这样肯定要一次一次的执行select * from user..这样的句子,也就是说我列一次显示50条主题就要执行51条sql句子...

不知道我这样说大家是否明白,不知道这个问题应该如何解决?

谢谢各位!

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com