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条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!