最近在查询标签收费记录时,要在列表中显示车牌号信息,而车牌号信息在标签信息记录表中,于是需要查询标签信息记录,最原始的做法:
获取分页的一页记录数据,循环遍历得出标签收费记录对象,然后通过标签收费记录中的标签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|Sqlserver|MySql数据库表结构一键生成工具" 提供了一种高效的方法来自动化这个过程,大大减轻了手动编写文档的工作量。这款工具能够支持三种主流的关系型数据库管理系统:Oracle、SQL Server和MySQL。 ...
用户只需选择相应的表和字段,设置条件,工具就能自动生成对应的SQL命令,无论是简单的SELECT语句,还是涉及JOIN、WHERE、GROUP BY等复杂逻辑的查询,都能轻松应对。 对于Access数据库,这款工具提供了友好的界面...
- 对于动态页面,使用缓存技术(如Redis或Memcached)可以显著降低数据库查询次数,减轻数据库压力。缓存热点数据,减少数据库交互,能够显著提升网站响应速度。 6. **数据库优化**: - 优化查询性能,包括编写...
总的来说,"good数据库表结构设计文档生成工具"通过自动化的方式,极大地减轻了数据库管理员和开发者的负担,使得他们能够更专注于数据库的设计和优化,而不是繁琐的文档编写工作。对于团队协作和项目管理,这样的...
8. 中间结果表:在进行大规模数据处理时,可能需要创建一个临时的中间结果表来保存合并过程中的数据,以避免对原始表的频繁操作和减轻内存压力。 通过以上方法,我们可以实现将关系数据库中的不同表字段合并到一张...
综上所述,存取数据库中的图像字段是一项涉及多个层面的任务,涵盖数据库设计、数据存储、数据存取、编程接口、性能优化以及安全策略等多个知识点。理解和掌握这些知识点对于开发支持图像的数据库应用至关重要。
- **垂直分表**:将表中的字段按功能或类型划分,将大文本字段分离到其他表中,从而减轻原表的负担。例如,从图书表中将`ContentDescription`、`TOC`等字段分离出来,并存储在一个单独的表中。这种方法可以增加每页...
分库分表则是将大规模数据分散到多个数据库,降低单个数据库的压力;而缓存则可以存储频繁访问的数据,减少直接对数据库的访问,提升系统响应速度。 总的来说,《问道1.4服务端数据库》是游戏服务器的关键组成部分...
4. **文件流技术**:对于大型文件,可以使用数据库提供的文件流技术,如SQL Server的FileStream,允许直接读写磁盘,减轻数据库压力。 5. **安全性**:确保数据库有足够的权限控制,防止未经授权的访问。使用加密...
- 数据库内置功能:许多数据库系统提供了对大字段的优化处理,如分页读取、流式读取等,合理利用这些功能可减轻同步压力。 - 第三方工具:例如ETL(提取、转换、加载)工具,如Talend、Informatica等,它们通常有...
5. **缓存机制**:利用缓存技术减轻数据库压力,提高响应速度。 #### 五、Destoon数据库安全措施 1. **权限控制**:为不同的用户角色设置不同的访问权限,限制非授权用户对敏感数据的操作。 2. **加密传输**:采用...
这样可以减轻数据库压力,但需要处理文件的物理路径和安全性问题。 6. **文件检索与显示**:从数据库中获取多媒体文件后,需要将其转换回原始格式,以便在前端展示。这涉及到二进制数据的读取和转换,通常在服务器...
例如,使用"数据库连接"组件可以连接到SQL Server、MySQL等数据库,然后通过"数据库查询"命令获取特定表或记录的字段数据。字段数据可能分布在多条记录中,因此在求和时,我们需要遍历查询结果,对每一条记录的指定...
3. **分块查询**:如果数据量过大,可以尝试分批查询,每次处理一部分数据,以减轻数据库系统的压力。 4. **使用全文搜索引擎**:如Elasticsearch或Solr,它们专门设计用于高效处理模糊和多列查询,尤其适合大数据...
### Jeecms数据库表结构详解 #### 一、概述 Jeecms是一款基于Java技术的开源内容管理系统(Content Management System, CMS),广泛应用于企业网站、新闻门户等网站平台建设。其核心优势在于高度可定制化与模块化...
在MyBatis中,我们创建Java类来表示数据库中的每张表,这些类的属性与表的字段相对应。例如,如果我们有一个`users`表,可以创建一个`User`类,包含`id`、`username`、`password`等属性。实体类用于在业务逻辑层和...
优化SQL查询意味着提高其执行效率,减少查询时间,减轻数据库服务器的负担,进而提升整体系统的性能。以下是一些关键的SQL优化策略: 1. **合理使用索引**:索引是数据库中用于加速查询的数据结构。为经常用于搜索...
1. 数据库字典表:数据库字典表是数据库管理系统中的一个重要组成部分,它记录了数据库的所有元数据,包括表、视图、索引、字段等对象的详细信息。这些信息对于数据库的设计、管理和维护都至关重要。 2. 导出字典表...
读写分离是提高数据库性能的常用手段,Mycat可以配置主从模式,将读操作导向从库,写操作则在主库进行,有效减轻主库压力。此外,Mycat还支持多主多从的复杂结构,以适应更灵活的业务需求。 五、Mycat的高可用性 ...