`
lang520123
  • 浏览: 7492 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

简单查询数据库,减轻多字段表及数据库压力

阅读更多
最近在查询标签收费记录时,要在列表中显示车牌号信息,而车牌号信息在标签信息记录表中,于是需要查询标签信息记录,最原始的做法:
  获取分页的一页记录数据,循环遍历得出标签收费记录对象,然后通过标签收费记录中的标签ID来查询标签信息对象,保存在List对象中:

    List vehicleList =new ArrayList();
   if(rs.list!=null && rs.list.size()>0){
for(int i=0;i<rs.list.size();i++)
{
  UrpcsConsumptionRecord recod =(UrpcsConsumptionRecord)rs.list.get(i);
if(recod!=null)
{
  UrpcsVehicle vehicle =vehicleDs.search(recod.getVehicleId());    vehicleList.add(vehicle);
}
}
     }
 
    对于上述操作,我特别提出vehicleDs.search(ID)方法,对于拥有众多字段的标签信息来说,查询整条记录,务必会影响查询效率和对数据库产生压力,看看search的实现方法:
      public UrpcsVehicle search(String vehicleId) {
return load(UrpcsVehicle.class, vehicleId);
     }
    对于此操作,造成后台不断打印出很多关于search记录(一页显示20条记录,1秒钟打印出20条search查询结果),如果频繁查询收费信息,会对数据库造成很大压力,直至拖垮数据库!
    对此,我想到只需要获取收费信息中一个标签数组,这样不用循环查询标签信息,是否能提高效率,提高性能啦!做法如下:
    List vehicleList =new ArrayList();
   if(rs.list!=null && rs.list.size()>0){
       Object[] objs =new Object[rs.list.size()];
       for(int i=0;i<rs.list.size();i++)
       {
UrpcsConsumptionRecord recod =(UrpcsConsumptionRecord)rs.list.get(i);
if(recod!=null)
{
   objs[i] =recod.getVehicleNumber();
}
       }
      vehicleList=vehicleDs.queryVehicleById(objs);   }

   很明显,这样查询不必频繁查询标签信息记录,效率也会相应提高,后台输出也会相应减少!
    来看看vehicleDs.queryVehicleById(objs[])来如何操作的:
    public List queryVehicleById(Object[] vehicleNumber){
       DetachedCriteria criteria =DetachedCriteria.forClass(UrpcsVehicle.class);
       criteria.add(Expression.in("vehicleNumber",vehicleNumber));       return getHibernateTemplate().findByCriteria(criteria);
   }
   虽然此方法使用了in查询,在一定程度上影响了数据库效率,但相对上面的查询,还是相对效率高些(个人看法)

   下面来看看一般如何获取object[]数组的:
   public Object[] getPopedomRole(final int RoleID){
return  (Object[]) getHibernateTemplate().execute(
         new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
String sql = "select popedomId from UrpcsPopedomRole a where a.roleId="+RoleID+"";
Query query = session.createQuery(sql);
List list = query.list(); return list.toArray();
}
});
   }
  一般如此得到一个表中的一个字段的记录,但上面的内容无需采用此方法,直接循环把内容存入到数组中即可!
分享到:
评论

相关推荐

    ORACLE数据库智能化管理系统2012

    本系统可执行SQL分组语句后,再对结果某值代码变为相对应名称,从而提高了数据库对SQL语句执行性能,减轻了因关联表太多查询,造成数据库性能下降带来的负担。 本系统可对执行SQL语句的结果集批量逐行处理多字段值...

    ORACLE数据库智能化管理系统2008演示

    11. 还在为日常数据处理分析,从查询结果中,求出任意选择行及数字型字段数据求合,而手工一行行、一列列累加求和吗? 12. 还在为某种数据不同类别所占总数比例及各多少?而手工累加一一计算吗? 13. 条件参数及数据...

    在oracle 数据库查询的select 查询字段中关联其他表的方法

    在实际开发过程中,特别是在做数据查询的时候,能够根据动态生成的sql语句将查询的结果转化并返回到业务处理逻辑(或页面展示出来)能大大的减轻业务逻辑的处理复杂度。

    基于MyBatis的数据库切分框架,可实现数据的水平切分和垂直切分

    数据库切分是应对大数据场景下性能...这样可以减轻单个数据库的压力,同时也方便了对不同业务的管理和维护。在实现时,您可能需要在 MyBatis 的配置文件中,定义多个数据源,并根据 SQL 语句的 namespace 或 SQL id 来选择

    医院药品管理系统数据库的设计.doc

    目录 医院药品管理系统数据库的设计 1 1、概述 1 2、需求分析 2 3、数据库设计 2 3.1系统结构图 2 3.2系统部分流程图 3 3.3各个实体关系E-R图 6 3.4各个表的关系图 7 4、应用程序设计 8 4.1程序登陆界面的设计 8 4.2...

    学生学籍管理信息系统

    数据库服务器端软件Microsoft Access2000 + SQL查询语句。 3.数据描述 1. 数据流程图: 用 户 系统登录 初始化 新生报到 信息录入 分班开始学习 结束 退出登录 录入成绩 考试 信息修改及打印 2.针对这个...

    基于ssm+Vue的学生智能选课系统(源码+部署说明+系统介绍+数据库).zip

    数据库部分展示了项目的数据库结构,包括表名、字段名和数据类型等信息。在实际使用中,学生可以通过前端页面浏览课程列表,根据自己的需求进行筛选和排序。系统会根据学生的选课情况自动调整课程顺序,确保每个学生...

    SqlToolBox 1.8.2

    如果您用右键点击这个圆点,程序将弹出一个右键菜单,选择其中的项目您将可以在右边的Sql语句操作窗口中得到单表的字段信息,创建(insert),查询(select),更新(update),删除语句(delete)及建表语句...

    NetCMS 1.7.0 Build 1125.rar

    用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便前后台数据录入界面的...

    NETSNS社交系统 V1.0 源码版.7z

    用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便前后台数据录入界面的...

    PHP168万能文章系统.rar

    1、可以反复安装多份,每个频道一份,这样就可以大大减轻数据库的压力。因为传统的整站系统,所有频道都在一个数据表里,随着栏目频道的增多,内容的增多,.数据库将不堪重负,难免会变慢,影响整体性能。 另外,...

    NetCMS_Ver1.0

    &lt;br&gt;自定义频道 用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便...

    NetCMS源码

    用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便前后台数据录入界面的...

    NetCMSV170src

    用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便前后台数据录入界面的...

    NETCMSv1.5(Build0509)完整源码版

    &lt;br&gt;自定义频道 用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便...

    NetCMSV1.7.0免安装版源码

    用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便前后台数据录入界面的...

    数据分析系统.docx

    这些企业的报表分析需求相对简单,甚至很多不懂数据库,只有行政人员进行报表数据处理,如果单靠个人进行数据处理,会比较麻烦,可以建设一个这样的系统,帮助她们以减轻日常工作的繁琐。 三、建设目标 建设一个轻量...

    NetCMS v1.7.0 bulid 081125 源码版.rar

    用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便前后台数据录入界面的...

    NetCMS v1.7.0 bulid 081125 正式版.rar

    用户可根据自己的需要自定义数据表,自定义字段,从而组合出新的频道如房产,招聘等,每个频道都可以拥有独立的表,彻底减轻了数据库的压力。自定义字段的内容录入可支持HTML可视化编辑,方便前后台数据录入界面的...

    在PB开发中利用PSR文件实现打印位置自由调整

    通过对数据窗口对象以及PSR 报表格式文件结合使用, 以及使用数据库大文本字段来存取blob 类型数据的深入研究, 实现了用户自己随意调整打印内容的位置等格式信息, 从而大大减轻了程序设计人员的维护工作量。

Global site tag (gtag.js) - Google Analytics