【问题标题】:Java Web application Displaying data from SQL joinJava Web 应用程序显示来自 SQL 连接的数据
【发布时间】:2011-06-13 14:59:39
【问题描述】:

我有两个数据库表。一张表包含预测数据。第二个表包含实际数据。我有两个代表这些表的 javabean。

我想要一个 jsp 视图 (JSTL/EL),它列出了预测数据、实际数据,然后按周日期组列出了两者之间的增量,例如:

                              1/1/11                    1/8/11
 CONTRACT   LineCode     Forecast Actual Delta    Forecast Actual Delta 
   B&M       E12-C         12       11    1           25       10    15
   B&M       E11-D         10       15   -5           20       20     0
   Smig      XX2-12        Null     10   -10          20       20     0
   Cartri    WW0-E         etc...

我是否应该从 SQL JOIN 创建一个代表上述视图的第三个 javabean 并在 servlet 中(或者可能在 SQL 本身中)进行所有数学运算?

或者我是否传递两个 bean 并在 jsp 视图中进行数学运算?如果我做后者,我不确定如何使用 jstl 有效地进行循环。两个 db 表的顺序或行数可能不完全相同(如上面 SMIG 合约中的 Null 值所示)

【问题讨论】:

    标签: java database jsp web-applications


    【解决方案1】:

    按优先顺序:

    1) 在数据库中做,

    2) 在 POD 中执行 (JavaBean)

    3) (distant 第三个) 在 JSP 中执行。

    【讨论】:

    • @EFH,好的,所以如果我在数据库中进行[计算],那么您是在暗示我需要第三个 javabaean,对吗?
    • 是的,我投票赞成在数据库中进行数学运算,然后使用一个简单的视图 JavaBean 来保存查询结果。
    • 我很难在数据库中执行计算。我上面的例子非常简单。管理需要各种聚合和汇总摘要。另外,我需要进行 Oracle Full Outer Join,即使使用 DISTINCT,我仍然会得到重复的行。我在想我应该分离 sql​​ 查询,然后在 servlet 循环中通过这两个集合并执行差距分析。
    • 有时在数据库中做起来太难了,所以当你进入列表中的第二位时。没有什么可耻的,如果不可能的话,没有理由让自己失望。
    • Oracle 11g 新增了 PIVOT 函数。我将进行调查以尝试将大部分工作保留在查询中。我的 jsp 视图在尝试使用 EL/JSTL 进行聚合计算时失控
    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2021-06-18
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多