我可以使用链接到现有数据库(示例 SAP DBB)的 Play Framework 来仅显示:
Dashboards (Queries)
Charts (Queries)
我开发了一个身份验证页面,突然间,我没有考虑如何在不声明模型的情况下从现有数据库中提取数据!
仅提取大量查询数据并将其显示在 View scala(Play 框架 JAVA)上的好方法是什么?
非常感谢
最佳答案
我们还有许多现有数据库,但没有 Play 应用程序中每个表的完整模型。我在 Play 应用程序中为所有必需字段(也是所有列的子集)创建一个案例类。这是 Scala 代码,当然也可以使用 Java。
case class Positionstext(akt_abnr: Int
, akt_text_art: Int
, akt_text_pos: Int
, akt_text: String) {
}
精心组装的 SQL 命令从一个或多个表中检索行。
def positionstexte(x: Int) : List[Positionstext] = {
DB.withConnection{ connection =>
val select =
""" select plr_ak_texte.akt_abnr
, plr_ak_texte.akt_text_art
, plr_ak_texte.akt_text_pos
, plr_ak_texte.akt_text
from plrv11.plr_ak_texte
, plrv11.plr_auftr_status
where plr_ak_texte.akt_abnr = plr_auftr_status.as_abnr
and plr_ak_texte.akt_aend_ix = plr_auftr_status.as_aend_ix
and plr_ak_texte.akt_abnr = ?
and plr_ak_texte.akt_text_art = 7
and plr_auftr_status.as_aend_ix <> 99
"""
val prepareStatement = connection.prepareStatement(select)
prepareStatement.setInt(1, x)
val rs = prepareStatement.executeQuery
var list: ListBuffer[Positionstext] = scala.collection.mutable.ListBuffer()
while (rs.next) {
list += new Positionstext(rs.getInt("akt_abnr")
, rs.getInt("akt_text_art")
, rs.getInt("akt_text_pos")
, rs.getString("akt_text"))
}
rs.close()
prepareStatement.close()
list.toList
}
就是这样! SQL 命令已经通过使用子查询、连接等完成了大部分工作。
所有需要的对象现在都在列表中,并且可以显示在 View 中。
关于java - 与现有数据库(模型)一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61579968/