最近在查询标签收费记录时,要在列表中显示车牌号信息,而车牌号信息在标签信息记录表中,于是需要查询标签信息记录,最原始的做法:
获取分页的一页记录数据,循环遍历得出标签收费记录对象,然后通过标签收费记录中的标签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。 ...
用户通过执行"ms数据库字段提取器1.4.exe"程序,跟随向导或界面提示,输入连接mssql服务器的相关信息,并选择需要提取字段信息的数据库和表。之后,工具将自动生成所需的字段列表,并支持导出为文本、CSV或Excel格式...
用户只需选择相应的表和字段,设置条件,工具就能自动生成对应的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`等属性。实体类用于在业务逻辑层和...
Model层是应用程序的核心,它直接映射到数据库中的表和字段。VS代码自动生成器的一个关键功能是为数据库中的每个表生成对应的类,并将表字段转换为类的属性。此外,代码生成器还使用枚举来表示特定的数据类型或分类...
优化SQL查询意味着提高其执行效率,减少查询时间,减轻数据库服务器的负担,进而提升整体系统的性能。以下是一些关键的SQL优化策略: 1. **合理使用索引**:索引是数据库中用于加速查询的数据结构。为经常用于搜索...
1. 数据库字典表:数据库字典表是数据库管理系统中的一个重要组成部分,它记录了数据库的所有元数据,包括表、视图、索引、字段等对象的详细信息。这些信息对于数据库的设计、管理和维护都至关重要。 2. 导出字典表...