我可以使用链接到现有数据库的播放框架(示例SAP DBB)仅显示:
Dashboards (Queries)
Charts (Queries)
我开发了一个身份验证页面,突然之间,我对如何在不声明模型的情况下从现有数据库中提取数据一无所知!
仅提取许多查询数据并将其显示在视图scala(Play框架JAVA)上的好方法是什么?
非常感谢
我们也有许多现有的数据库,而Play应用程序中没有每个表的完整模型。我在Play应用程序中为所有必填字段(也是所有列的子集)创建了一个case类。这是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命令已经通过使用子查询,联接等完成了大部分工作。
所有所需对象现在都在列表中,并且可以在视图中显示。