您的位置:程序门 -> java -> j2ee / ejb / jms



两张表,显示数据库中数据的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


两张表,显示数据库中数据的问题[已结贴,结贴人:tamik]
发表于:2007-08-11 20:31:58 楼主
关于两张表的一个小问题
员工表(员工号,姓名,性别,年龄,部门号)
部门表(部门号,部门名,部门地址)
bean:     employeebean,deptbean   分别对应以上两表
-----------------------------------
现在要显示
所有员工信息(员工号,姓名,性别,年龄,部门名,部门地址)
部门名,部门地址,该怎么办呢?也就是要将部门号变成部门名,部门地址。

难道,要再建一个bean?属性分别是(员工号,姓名,性别,年龄,部门名,部门地址)?

有没有更好的办法?
发表于:2007-08-11 21:27:451楼 得分:3
先把两表建立对应关系,做个级联.
发表于:2007-08-12 02:47:372楼 得分:0
这个不难啊,既然bean已经做好,针对bean的dao总该也做了吧

那么,类似这样的方法就可以了
员工的dao是
employeedao
部门的dao是
departmentdao
里面有一个方法是根据部门的id获取到一个部门的bean
public   departmentbean   getdepartmentbeanbyid(   long   id   )

以后需要获取指定员工的部门信息,只要这样做就可以
假定这个员工已经获取到,名字是employeebean

departmentbean   departmentbean   =  
                departmentdao.getdepartmentbeanbyid(   employeebean.getdepartmentid()   )

string   departmentname   =   departmentbean.getname();
string   departmentnumber   =   departmentbean.getnumber();
发表于:2007-08-12 02:48:233楼 得分:0
地址的话就是
string   departmentaddress   =   departmentbean.getaddress();
发表于:2007-08-12 09:46:594楼 得分:2
首先,这两个表是一对多的关系,一个部门对多个员工。
然后,要查出你所要的结果,可以用联合查询的方式。
最后,你会用hibernate吗?可以用hibernate来做,hql语句是
from   employee   e   left   join   fetch   e.department
发表于:2007-08-12 12:23:055楼 得分:0
谢谢大家
我是用struts来做这个项目的,oracle数据库
两张表:
员工表(员工号,姓名,性别,年龄,部门号)
部门表(部门号,部门名,部门地址)
employee表:       emp_id,   emp_name,   emp_sex,   emp_age,   dep_id
department表:   dep_id,   dep_name,   dep_loc

bean:       employeebean       (emp_id,   emp_name,   emp_sex,   emp_age,   dep_id)
                departmentbean   (dep_id,   dep_name,   dep_loc)
                (两个bean和表中字段完全对应)

dao:         employeedao     和   departmentdao     (dao里是选择联合查询,还是不用联合查询的好?)

action:   showallemployeeaction     (获取所有员工详细信息的list <?> 的逻辑)

jsp:         showallemployee.jsp         (接收list <?>   并显示)

我的目的:显示所有员工的详细信息(员工号,姓名,性别,年龄,部门名,部门地址)

问题在于:在显示处理的showallemployeeaction这个action中,根据员工号,要取得详细信息(员工号,姓名,性别,年龄,部门名,部门地址)可以有两种方法.

        一是   在dao层中使用联合查询sql语句:   employeedao   中,有个方法  
public   list <?>   getallemployeeinfo(string   emp_id)
{
      ……联合查询语句……
}
      那问题在于,问号?中   到底该使用哪个bean?   要再新建一个bean?

      二是   不使用联合查询语句,象楼上   “talent_marquis(甜菜侯爵)   (   )   信誉:97”
  说的通过   员工信息中的   部门号,再去查询一次,也可以获得部门信息。
  那问题是,所查询出来的所有详细信息,要存放在一个list <?>   中,   这个?该是哪个bean?要新建?

      其实,两种方式都是一个问题,真的有必要新建一个bean(属性为:emp_id,   emp_name,   emp_sex,   emp_age,   dep_name,   dep_loc)   吗???那是不是根据不同的查询需要,就要新建不同的bean了,
经常是这样做的吗?
发表于:2007-08-12 12:29:316楼 得分:0
问题最简单一句话就是:
问题就是关于bean,一个表对应一个bean?
查询时,根据需要新建不同的bean?
这不就类似于对应不同的action,根据需要新建不同的formbean一个道理了?
是这样子的吗?


快速检索

最新资讯
热门点击