比如:论坛的帖子类 Topic, 会关联一个用户类 User
public Class Topic //论坛帖子类
{
private User postuser;
.......................
}
在数据访问层里 TopicDAO 一个方法: GetTopicListByFroum(int forum)我觉的有两种方法从数据库获得 Topic 关联的 postuser 对象方法一:
如果调用 UserDAO 获取相应的 postuser对象的话 GetTopicList(int forumId)
ResultSet rs = stmt.executeQuery("SELECT * FROM Topic where forum=forumId");
while(rs.next)
{
Topic topic=New Topic();
topic.setId(rs.getInt("id"))
topic.setTitle(rs.getString("title"));
int userid=rs.getInt("userId")
topic.setPostUser(UserDAO.getUserById(userid)); //
.............................
}方法二 :
ResultSet rs = stmt.executeQuery("Select * from topic join user on topic.postuser=user.id where topic.id=id ");
while(rs.next)
{
Topic topic=New Topic();
topic.setId(rs.getInt("id"))
topic.setTitle(rs.getString("title"));
User postuser=New User() //--查询关联着User表----
postuser.setId(rs.getInt("userid"))
postuser.setName(rs.getString("name"))
topic.setPostUser(postuser);
.............................
}
请问你用哪种方法 还是有比这更好的方法
public Class Topic //论坛帖子类
{
private User postuser;
.......................
}
在数据访问层里 TopicDAO 一个方法: GetTopicListByFroum(int forum)我觉的有两种方法从数据库获得 Topic 关联的 postuser 对象方法一:
如果调用 UserDAO 获取相应的 postuser对象的话 GetTopicList(int forumId)
ResultSet rs = stmt.executeQuery("SELECT * FROM Topic where forum=forumId");
while(rs.next)
{
Topic topic=New Topic();
topic.setId(rs.getInt("id"))
topic.setTitle(rs.getString("title"));
int userid=rs.getInt("userId")
topic.setPostUser(UserDAO.getUserById(userid)); //
.............................
}方法二 :
ResultSet rs = stmt.executeQuery("Select * from topic join user on topic.postuser=user.id where topic.id=id ");
while(rs.next)
{
Topic topic=New Topic();
topic.setId(rs.getInt("id"))
topic.setTitle(rs.getString("title"));
User postuser=New User() //--查询关联着User表----
postuser.setId(rs.getInt("userid"))
postuser.setName(rs.getString("name"))
topic.setPostUser(postuser);
.............................
}
请问你用哪种方法 还是有比这更好的方法
解决方案 »
- Jmenu 可以鼠标移上去就改变颜色吗?
- 关于TextArea与JTextArea的疑惑
- java客户端与C++服务器程序的通信协议设计与编程问题
- 有谁用过POI,请问POI能用于WEB吗
- 如何将java程序转换成windows上的可执行程序
- 为什么我用jbuilder9生成的本地EXE文件,在双击后不运行??????
- String裡面replaceAll的問題
- 错误在哪儿?
- 请问这个问题那里有错?
- 请问设计一个类似OICQ这样的软件,用什么开发工具合适
- java同步关键字synchonized是如何实现的 具体的原理是什么?
- [请教]swing,如何把ActionLactionListener()放在外部,而非以内部类实现?(代码)
本来就应该用表关系呀,关系型数据库嘛
sql语句执行的会比较快呀!
好得设计是压力交给database,而不是交给application,
第二种维护起来就很麻烦了.但就查询数据库1次
好得设计是压力交给database,而不是交给application,
ResultSet rs = stmt.executeQuery("Select * from topic join user on topic.postuser=user.id where topic.id=id ");
while(rs.next)
{
Topic topic=New Topic();
topic.setId(rs.getInt("id"))
topic.setTitle(rs.getString("title"));
User postuser=New User() //--查询关联着User表----
postuser.setId(rs.getInt("userid"))
postuser.setName(rs.getString("name"))
topic.setPostUser(postuser);
.............................
}
make up some users and messages and then test
User postuser=New User() ;
postuser.setId(rs.getInt("userid"));
postuser.setName(rs.getString("name"));
postuser.setNewField(rs.getString("newField"));//加入该行,且要修改前面的SQL语句,不符合开闭原则