我的列表显示类A的一些信息。 如显示:计划编号,计划时间,操作员,产品名称,产品等级,产品规格,产品品种。
计划编号,计划时间,操作员这三个好做 因为类A对应的数据库字段存就是字符, 直接可以通过${对象.属性}得到
但是: 产品名称,产品等级,产品规格,产品品种。这四个字段在类A对应的数据库中存的是int类型的ID
 也就是这四个 字段属于公共资料,我建一张公共资料表。假如叫 commontable  
commontable 表有字段 id,name,type。也就是说 我类A对应的数据库表中存放的是这个 commontable  表的id 
而现在 我在页面 如果${对象.属性} 那么用户看到的只是 数字 id。我要显示的是 这个id对应的name.
求高手解答 怎么做。
 我的方法是:获得一个list(当然就是类A的集合)然后遍历for()这个list 没得到一个对象,然后就获得名称,等级..(那四个id)然后 查询commontable   得到对应的name 又放到四个不同的list中
这样在页面 用 jstl来获取。
虽然实现了 但是 我发现:一条类A的记录就要查询 4次commontable表 。我每页显示的是10条 那么一页就要查询40次commontable 。还有就是 现在只是 4个这样的公共资料字段,有可能 还回增多,那不是要把数据库查到崩溃!!!!求解决之道啊!!!

解决方案 »

  1.   

    你的数据应该是这样的
    字段1,字段2,字段3
    A       B     C
    commontable里存的是
    字段1,字段2
     A      上海
     B      北京
    你的数据里存的是commontable里的字段1里的值,你通过查询commontable来获取字段2的值不知道我理解的对不对,所以你每条记录都要查询4次commontable来转换
    我的做法是,一次把commontable你需要转换用到的数据查出来,放到HashMap里
    要转换的字段做key,最终你要的结果做value
    Map[A=上海,B=北京]
    这样你就查询1次commontable就可以了
    然后A表中的记录转换时,你只需要A.set字段1(map.get(A.get字段1));就可以了。
    不知道我说的意思你能不能理解。
      

  2.   

    用sql啊  或者用hibernater的一对一关联映射
      

  3.   

    你的数据应该是这样的
    字段1,字段2,字段3
    A       B     C
    commontable里存的是
    字段1,字段2
     A      上海
     B      北京
    你的数据里存的是commontable里的字段1里的值,你通过查询commontable来获取字段2的值不知道我理解的对不对,所以你每条记录都要查询4次commontable来转换
    我的做法是,一次把commontable你需要转换用到的数据查出来,放到HashMap里
    要转换的字段做key,最终你要的结果做value
    Map[A=上海,B=北京]
    这样你就查询1次commontable就可以了
    然后A表中的记录转换时,你只需要A.set字段1(map.get(A.get字段1));就可以了。
    不知道我说的意思你能不能理解。
      

  4.   

    你的数据应该是这样的
    字段1,字段2,字段3
    A       B     C
    commontable里存的是
    字段1,字段2
     A      上海
     B      北京
    你的数据里存的是commontable里的字段1里的值,你通过查询commontable来获取字段2的值不知道我理解的对不对,所以你每条记录都要查询4次commontable来转换
    我的做法是,一次把commontable你需要转换用到的数据查出来,放到HashMap里
    要转换的字段做key,最终你要的结果做value
    Map[A=上海,B=北京]
    这样你就查询1次commontable就可以了
    然后A表中的记录转换时,你只需要A.set字段1(map.get(A.get字段1));就可以了。
    不知道我说的意思你能不能理解。
      

  5.   


    然后A表中的记录转换时,你只需要A.set字段1(map.get(A.get字段1));就可以了。
    嗯 那我要在页面显示 上海,北京,这个怎么弄弄!》?呵呵
      

  6.   

    A.get字段1里是值A→map.get(A)获取到的值就是北京→A.set字段1(北京)。
    这段执行完,A的字段1里的值就已经从A转换为北京了,你只要显示A的字段1出来的就是北京啊