问几个一直以来都不是很明白的问题:
songm 2006-03-14 02:53:18 问几个一直以来都不是很明白的问题:
由于就要毕业出来了。当前正在做的项目设计中遇到一点这样的问题。
说明:项目是一个网上书店,用struts+spring+hibernate来实现
1、怎样得到分类名:
shop_booksort:书籍分类表(field1:id(标识) field2:name(分类名))
shop_bookinfo:书籍信息表(field1:id(标识) field2:sort_id(分类ID))
现在如果我在页面上查看一本书籍ID=10000的书,在shop_bookinfo表中查到记录后,在页面上显示,这个时候我要得到分类的名称(NAME),要怎样做呢?是先得到该分类的ID,再查询表shop_booksort来得到NAME吗?那样就要执行两次数据库查询了。在Hibernate中使用双向一对多的话是不是就可以少查一次数据库吗?如果是那样,我在书籍的业务bean对象中本来是只有getSortID()的方法,那不是还要加上一个getSortName()的方法来传递数据,那样好像不是很好。一般大家是怎样改决呢?
2、问过一些朋友,有些人说数据库表中最好是建上关联,那样可以保持数据的完整性,还有一些人就不要将业务关联带到数据库中。不知道在数据库设计时是建关联好还是不建关联好?如果是Hibernate中是不是在配置文件中建关联,不要在数据表上建关联呢?
3、关于排序,我们在hibernate配置的文件中可以按表个字段排序放入缓存,那如果我要在缓存中取出数据后在排序要怎么办。如,我将所有书籍以时间字段排序取出放在缓存中,现在我要在页面上点按名称排序时,这时我读取的是缓存中的数据,要怎么排序呢?
4、再问一个问题:那就是我在B/S架构中,Spring以单型的模式加载,那它释放的时候是什么时候呢?也要就是我在服务器上产生了一个对象,这个对象是不是在WEB APPLICATION被关闭时再释放,还是服务器上会自动回收。
5、关于Spring的事务处理上,像我首页要显示新书2本,推荐书籍2本,我在action中用的中现在只能是两次去调用业务层来得到这两种书,在没有用到Spring前,我用hibernate可以直接用
Transaction tr = session.beginTransaction();
事务1
事务2
。。。。
Tr.commit();
我现在的意思是,是不是可以在struts的action中用事务的方式来调用处理业务呢?
Public class MyAction extends Action{
这里面用事务的方式来调用业务层?可以吗?
}
注:问题可能对大家来说比较简单,不过本人目前还不会。希望大家多指点一下,本人一定会虚心学习的。