用SSH做BBS时遇到的问题,大家进来看看

bean 2009-05-31 02:26:13
用SSH做一个BBS的时候,遇到一些问题,大家帮我看看。

问题1:
先说下我的数据库表结构,一共有4个表,user表存放用户信息,photo表存放用户头像信息,topic表存放主题信息,
revert存放对主题的回复信息。topic表中有一个borwse_times字段,表示的是对这一主题的点击次数,revert表中有一个
topic_id字段,表示此回复对应的主题id,它作为外键,引用topic表中的id。
利用myeclipse生成pojo和映射文件,

Topic.java中的属性:

private Integer id;
private String title;
private String content;
private String author;
private String submitTime;
private Integer browseTimes;
private Set reverts = new HashSet(0);

Topic.hbm.xml:


<set name="reverts" inverse="true">
<key>
<column name="topic_id" not-null="true" />
</key>
<one-to-many class="com.bbs.hibernate.Revert" />
</set>


Revert.java中的属性:
private Integer id;
private Topic topic;
private String content;
private String author;
private String submitTime;


Revert.hbm.xml:


<many-to-one name="topic" class="com.bbs.hibernate.Topic" fetch="select">
<column name="topic_id" not-null="true" />
</many-to-one>


在进入BBS主页的时候,我需要把所有主题查询出来,在页面中需要显示出主题的回复次数和查看次数,以及最后一个回复的作者和时间,
我的问题就是这个查询应该怎么用用hibernate的HQL来写,以及怎么封装成一个对象,好在页面中使用JSTL循环输出。

问题2:

当点击某一主题后,可以进入另一个页面,在页面中,显示此主题信息已经对此主题的所有回复信息,这里的查询应该怎么用用hibernate的HQL来写
,以及怎么封装成一个对象,好在页面中使用JSTL循环输出。

问题3:
topic表的这个borse_times(点击次数)应该怎么来更新。
问题4:
循环输出顺序问题,当拿出所有主题信息时,让最新的主题放在最上面,当拿出所有回复信息时,让最新的主题在最后面。

另外大家还有什么好的建议,可以也说说,我会谢谢大家!






















...全文
129 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunan_36 2009-07-20
  • 打赏
  • 举报
回复
vo 是???
erewgd 2009-05-31
  • 打赏
  • 举报
回复
还是这里回答的清楚啊
http://www.nlld.net/program/tiezijiyiqv.do?method=viewtiezi&id=1720
tjyyyatjp 2009-05-31
  • 打赏
  • 举报
回复
我推荐3楼的做法,他与一楼显著不同在于 vo 。vo是值对象,一楼是教你写 po ,po是数据库表映射对象。用vo 安全性高。另外一点。做点击次数更新时,最好用ajax异步刷新技术。我要补充的没了,谢谢观赏。8!
tjyyyatjp 2009-05-31
  • 打赏
  • 举报
回复
我推荐3楼的做法,他与一楼显著不同在于 vo 。vo是值对象,一楼是教你写 po ,po是数据库表映射对象。用vo 安全性高。另外一点。做点击次数更新时,最好用ajax异步刷新技术。我要补充的没了,谢谢观赏。8!
caiterry 2009-05-31
  • 打赏
  • 举报
回复
问题一:写个vo里面有你页面的字段,hql=from Topic as t,Revert as r where t.id = r.topic_id
问题二:hql = from Revert as r where r.topic.id = ? 然后封装在你的vo中
问题三:点击的话,可以让其 borse_times++ 然后在update
问题四:hql = from Topic t order by t.borwse_times desc --主题
hql = from Revert r where r.topic.id = ? order by r.topic.borwse_times --主题的回复
lvsh870228 2009-05-31
  • 打赏
  • 举报
回复
顶1楼!
legend_jhz 2009-05-31
  • 打赏
  • 举报
回复
问题一:按照你这些表的设计,要么重新根据你的要显示的信息写个pojo类,要么单独求出然后request.setAttribute("xxx",xxx),在jsp中去取${xxx}。
问题二:这一个可以这样sql = from Revert as q where q.topic.id = ? Query q = this.getQuery(sql);
q.setParameter(0,topicid);return q.list();然后获取这个list后再<c:iterator>
问题三:每次点击取出这个topid的主题,然后拿到字段++后再更新。
问题四:这个sql = from Topic where id = ? order by borwse_times desc,这样可以得出来。
另外建议在set属性中加个lazy="extra",还有这些最基本的应该自己好好学吧?
hzd2712 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caiterry 的回复:]
问题一:写个vo里面有你页面的字段,hql=from Topic as t,Revert as r where t.id = r.topic_id
问题二:hql = from Revert as r where r.topic.id = ? 然后封装在你的vo中
问题三:点击的话,可以让其 borse_times++ 然后在update
问题四:hql = from Topic t order by t.borwse_times desc --主题
hql = from Revert r where r.topic.id = ? order by r.topic.borwse_times --主题的回复
[/Quote]
不赖不赖!!
mayuning258 2009-05-31
  • 打赏
  • 举报
回复
进来学习学习!

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧