0 0

关于报表的逻辑是用java实现还是用sql实现的疑问3

对于一些业务逻辑比较复杂的报表功能,我们可以用2种方法去解决:

1、通过简单的查询,将基础数据都查出来,然后在java代码中写业务计算的逻辑,从而得到结果。

2、通过存slq、存储过程、中间表等一系列数据库级别的手段,得到需要的结果,java代码只需要简单的查出来就可以了。

这两种做法,理论上是可以得到同样的结果的,但哪个会好一些呢?

说来惭愧~我的数据库功底比较差,以前多用第一种办法实现的,但这次项目过后,发现技术上有缺陷也不好,所以上来问问大家有什么看法~

本问题没什么加分的,只希望大家可以说说自己的看法和理由~谢谢~
2012年1月10日 15:09

4个答案 按时间排序 按投票排序

0 0

引用

报表一般是典型OLAP性需求,使用上卷表(汇总表)+sql的方式有很大的方便,建立数据仓库是很有必要的,其实报表, 各种图,仪表盘等都是系统不同维度的抽象数据切片/切面
一般业务系统稳定后报表就成了主要的开发任务.
我现在做法是定期使用python抓取数据到数据仓库.

java不如脚本语言方便,  而且使用sql从仓库中读取报表,尽量做到与OLTP业务代码分离(不同的数据库,不同的代码抽象)

存储过程一直是不采用,当你的db需要功能分库,和数据分区时 就知道悲剧了。。。

当然如果报表不是很多自己擅长那个,就用那个来做.考虑性能,数据量,并发不过还是建议sql,几十万数据处理对于数据库时小事一桩,但对于jvm就不一定了...

2012年1月11日 18:58
0 0

两种方法可以互补的,根据实际情况设计,主要考虑效率和性能。如果涉及的业务逻辑比较复杂,个人更倾向于第一种方法,这样在业务变更时更容易修改,兼容性也好。

2012年1月10日 18:46
0 0

我知道的是,jdbc传入的sql需要预编译,而存储过程则不需要这个过程。

2012年1月10日 15:27
0 0

如果能用java实现你的报表数据逻辑,当然是SQL最少的情况的。那么尽量使用java来处理。这样可以免很多将来可能出现的移植方面的问题。

如果你的逻辑很复杂,查询SQL需要大量的函数之类的东西,那么建议你使用存储过程,函数,触发器等。也就是所谓数据库一级的开发。

基本上很少用SQL写逻辑,这个是肯定的。一般都是用来做报表的。尤其当你使用java实现复杂报表时,你需要将基础数据拿出来后做很多逻辑处理,肯定还需在此查询数据库,那么对于数据库的I/O负载就会很高。这个时候还是调用存储过程比较靠谱。

不过做的多了,你会发现,如果有环境还是使用润乾,或者用友的报表系统来做,会减少很多工作。


这个问题每有什么好不好的主要还是看你的业务查询数据逻辑有多复杂,以及你的系统的负载情况,再往小就是这个统计功能的点击情况来综合考虑。

2012年1月10日 15:24

相关推荐

    图书馆管理系统(用java+sql server2000实现)

    《基于Java和SQL Server2000的图书馆管理系统实现详解》 图书馆管理系统是信息化时代图书馆进行资源管理的重要工具,它能够高效地处理图书借阅、归还、查询、预订等业务,大大提升了服务质量和效率。本系统采用Java...

    水晶报表java web实现

    水晶报表在Java Web中的实现是将复杂的业务数据转化为可视化、易于理解的报表的过程。这个实现主要涉及了几个关键技术和组件,包括Crystal Reports、Java、JSP(Java Server Pages)以及Tomcat服务器。以下是对这些...

    java报表,简单列表报表及复杂报表方案

    本文将深入探讨基于Java的简单列表报表和复杂报表的实现方案,以及如何利用EasyUI和FastReport工具来提升报表设计与生成的效率。 首先,简单列表报表通常用于展示数据列表,其特点是数据项较少,格式简洁。在Java中...

    Java+sqlserver2000做的员工管理系统

    【Java+SQLServer2000员工管理系统】是一个基于Java编程语言和Microsoft SQL Server 2000数据库管理系统构建的应用程序,主要用于管理企业内部的员工信息。这个项目为学习Java和数据库开发的学生提供了一个很好的...

    JAVA报表程序源码

    在报表系统中,Java用于编写后端逻辑,处理数据计算、查询和报表生成。 2. **报表引擎**:报表引擎是Java报表程序的核心,它负责解析报表设计,执行查询,格式化数据,并将结果呈现为可视化的报表。常见的Java报表...

    java 超市管理系统 sql server

    1. **JDBC(Java Database Connectivity)**:Java通过JDBC API与SQL Server建立连接,执行SQL语句,实现数据的增删改查操作。JDBC驱动程序是连接Java应用程序和SQL Server数据库的桥梁。 2. **Servlet与JSP(Java...

    java+SQLServer做的员工管理系统

    《基于Java与SQL Server的员工管理系统详解》 ...无论是从技术选型、系统架构设计,还是具体功能实现,都展现了一套完整的解决方案,对于学习和理解Java后端开发以及SQL Server数据库应用具有很高的参考价值。

    java仓库管理系统SQL

    Java仓库管理系统SQL是一个基于Java编程语言开发的仓库管理软件,其核心功能是通过SQL数据库进行数据存储和管理。系统设计通常包含多个模块,如库存管理、出入库操作、物品跟踪、库存统计等,以实现对仓库流程的高效...

    china_netcom.rar_java 报表_报表_报表JAVA

    【标题】"china_netcom.rar_java 报表_报表_报表JAVA" 提示我们这是一个关于使用Java编程语言和Struts框架开发的电信行业的报表系统。这个系统主要涉及信息报表的各种操作,包括添加、删除、修改和查询。 【描述】...

    用java+sqlservser2005写的旅行社信息管理系统

    在本系统中,Java主要负责业务逻辑的处理,通过Java的面向对象特性,可以设计出清晰的类结构,实现数据的增删改查以及复杂的业务流程控制。 2. SQL Server 2005数据库: SQL Server 2005是微软公司推出的关系型...

    JAVA报表解决方案源码

    Java报表解决方案源码是针对企业级应用中数据报表生成与展示的一个重要工具,它通常包含一系列的类库、API和示例代码,帮助开发者在Java平台上实现复杂的数据处理和报表设计。在J2EE环境中,这类解决方案对于数据...

    JAVA SQL酒店管理系统.zip

    本篇文章将详细解析基于JAVA和SQL Server设计的酒店管理系统,探讨其核心功能、架构设计以及如何通过源代码实现基本操作。 一、系统概述 JAVA SQL酒店管理系统是一个集成化的解决方案,旨在简化酒店日常运营中的...

    JAVA仓库管理系统源代码 含SQL数据库

    总结来说,这个Java仓库管理系统是用JBuilder2006开发的,配合SQL数据库,提供了全面的仓库管理功能。源代码的公开使得学习和改进系统成为可能,对于理解Java应用开发和数据库管理具有很高的实践价值。

    Java水晶报表开发技术

    此外,水晶报表还支持自定义逻辑和脚本,可以在报表内部实现更复杂的功能。对于统计图,水晶报表提供了多种图表类型,如柱状图、饼图、线图等,可以轻松地根据数据生成可视化图表,帮助用户直观理解数据分布和趋势。...

    java报表打印包(导入即可)

    4. **使用源代码**:压缩包中的"src"目录很可能包含了实现报表打印功能的Java类库。这些类可能封装了对Java Print Service API的调用,或者使用了JasperReport库来处理报表生成。导入这些源码后,开发者可以直接在...

    用JAVA开发的在线问卷调查系统(WAR+源码+SQL)

    【标题】:“用JAVA开发的在线问卷调查系统(WAR+源码+SQL)”揭示了这是一个基于Java技术栈构建的Web应用程序,主要功能是实现在线问卷调查。这种系统通常包括创建问卷、发布问卷、收集答案以及分析结果等功能,对...

    Java Web报表模块.rar

    以下是一些关于Java Web报表模块的关键知识点: 1. **Servlet与JSP**:作为Java Web开发的基础,Servlet用于处理HTTP请求,而JSP则用于生成动态HTML内容。报表模块通常会结合两者,Servlet处理请求并准备数据,JSP...

    birt报表的动态sql

    2. **表达式构建器**:BIRT提供了表达式构建器,允许开发者使用Java脚本或JavaScript来创建复杂的逻辑表达式,这些表达式可以用于动态生成SQL的WHERE子句。比如,你可以根据用户的选择动态决定是否加入某些过滤条件...

    ireport制作报表小例子(java)

    【标签】:“报表例子”说明这是一个关于报表设计和实现的实际示例,可能包含了如何使用iReport与Java进行集成、如何定义数据源、如何创建模板、如何填充数据以及如何在应用程序中展示报表等关键步骤。 【文件名称...

    学生成绩管理系统 java+sql

    【标题】"学生成绩管理系统 java+sql"指的是一个基于Java编程语言和SQL数据库技术开发的学生学业成绩管理软件。这个系统通常用于教育机构,帮助教师、管理员或学生方便地存储、管理和分析学生的成绩数据。 【描述】...

Global site tag (gtag.js) - Google Analytics