gpt4 book ai didi

database - Scala/Lift 数据库连接

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:34 24 4
gpt4 key购买 nike

我正在使用 Scala 和 Lift 开发一个新的网络应用程序。我想让它可重用,以便其他人可以根据自己的需要将它安装在自己的服务器上。我来自 PHP 背景,在这种背景下创建一个要求数据库连接详细信息的安装表单是常见的做法。此信息存储在配置文件中,并由 PHP 应用程序的其余部分用于连接到数据库。这对用户来说非常方便,因为所有内容都包含在存储 PHP 文件的目录中。他们可以自由定义其他一切。我的 Java/Scala 背景一直是企业工作,其中应用程序仅打算在我们为其设置的数据库上运行。它并不意味着要安装在其他人的网络服务器上或与不同的数据库一起使用。

所以我的问题是,对于 Java/Scala 世界,这通常是如何完成的?如果有实现主流解决方案的开源应用程序,请随时向我指出这些应用程序。

最佳答案

我用它来设置数据库:

val vendor =
new StandardDBVendor(
Props.get("db.driver") openOr "org.h2.Driver",
Props.get("db.url") openOr "jdbc:h2:mem:db;AUTO_SERVER=TRUE",
Props.get("db.user"),
Props.get("db.password"))
LiftRules.unloadHooks.append(vendor.closeAllConnections_! _)
DB.defineConnectionManager(DefaultConnectionIdentifier, vendor)

然后,所引用的“Props”将(默认情况下)位于资源中 props 目录中的文件 default.props 中。

更新:这是我在生产服务器上所做的。使用“Props.whereToLook”,您可以提供一个函数来检索配置的输入流。这可以是下面示例中的文件,或者您可以通过网络套接字获取它。

您可能会让应用程序因错误对话框而失败。

val localFile = () => {
val file = new File("/opt/jb/myapp/etc/myapp.props")
if (file.exists) Full(new FileInputStream(file)) else Empty
}
Props.whereToLook = () => (("local", localFile) :: Nil)

关于database - Scala/Lift 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5024499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com