haitr 2009-04-14 20:09
浏览 145
已采纳

数据库轻量级查询问题

请教一个问题:

1.现在数据库有个超过10个字段的用户表userInfo,Java里也有个对应的UserEntity,现在我要显示一个用户列表页,但列表页只显示部分字段,点击其中一个查询才显示当前用户全部信息,在一本关于重构的书中看到这样的查询最好使用轻量级查询,就是只从数据库返回当前需要字段

比如这样,列表页只需要显示姓名,性别,年龄,住址,邮编,sql语句可以写成这样:

select name,sex,age,address,zipcode form userinfo

 但是用JavaBean接收时,假设查出来10000条数据,我还是要new 10000个UserEntity来封装信息,书上说只查询部分信息却要完整实例化一个重量级Bean是不好的,而且我也觉得这样Bean这样设计也是有问题的,但是他给的解决方案我也没看得懂,所以在这里请教下前辈,你们对这样的情况怎么设计(假设数据库表设计是没问题的,就是10个字段,而要在前台用户部分信息列表),书上提到的JDO(Java Data Object)我也不知道干嘛用的, 和这个有关系吗?

如果我的描述不清晰的话,请前辈加我QQ:78533664或者留下您的QQ,我很好学,希望能得到前辈们的教导,谢谢


问题补充:
关于1楼前辈的回复,我有个疑问,请问这样是不是造成字段重复了
  • 写回答

5条回答 默认 最新

  • xiaozhen 2009-04-15 09:30
    关注

    你的问题包含两部分担心
    1、大数据量时的查询结果是否占用很多内存
    2、需要查询的结果对象和数据库字段不完全吻合时的设计

    回答
    1、真正项目里,肯定不会把10000条结果一次性都读取出来,而是分批读取。即使你程序里想一次性读取也不是那么容易的,因为数据库本身也有单批读取的默认限制,大概是1000条。显示的时候也不可能是把10000条同时显示在界面上。所以你这个担心没必要。。
    2、实际开发中,很多时候,要用的对象和数据表字段不是一一对应的,甚至一个对象的字段会跨几个表。就你举得例子而言,一般情况下不会这样设计,不会让一个对象所需的字段比数据表的字段还少,而是尽量让对象的字段多,才方便业务的使用。不用担心内存占用。如果对象的字段没有值,只会占用几个到几十字节空间。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记