【问题标题】:Getting Started With Lift, Using Databases to Build Dynamic SitesLift 入门,使用数据库构建动态站点
【发布时间】:2011-02-23 04:38:09
【问题描述】:

所以我一直在互联网上寻找关于提升如何与数据库相关的一个很好的解释。我还没有发现任何非常有用的东西。我正在寻找的是一个简单的解释或代码示例,可以显示lift如何连接到其数据库以执行事务以及如何使用它来创建新表、模型或更新和编辑现有表。

例如:使用 django,我很容易弄清楚它是如何从模型类生成数据库表并通过从框架继承的方法对它们执行更新的。

我目前正在尝试创建一个简单的应用程序,该应用程序将包含用户、有关他们的信息、网站上的帖子等。

我目前正在阅读可用的 Lift 书籍,如果能在学习如何使用 Lift 方面获得更多帮助,我将不胜感激。

【问题讨论】:

    标签: database scala lift


    【解决方案1】:

    Lift 在 Boot.scala 中配置它的数据源。

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

    它可以使用 Schemifier 为您生成表模式:

     Schemifier.schemify(true, Schemifier.infoF _, User,Post,Tag,PostTags)
    

    对于一般的 Lift 项目,您可以只使用 Lift Mapper 作为 ORM 工具,它并不完整,但适用于大多数情况。

    您可以参考Lift WIKI和Simply Lift(作者撰写)或Explore Lift。 从我的角度来看,目前可用的文件相当令人失望。 据说Lift in Action写得很好,不过要到今年夏天才出来,你可以从MEAP上看。

    【讨论】:

      【解决方案2】:

      在 Exploring Lift 一书中,PocketChange 示例包含显示如何使用 MetaProtoUser 和其他功能定义用户的代码。我将从那里开始更好地了解 Lift、模型以及内置 CRUD 和用户原型对象。

      http://exploring.liftweb.net/master/index-2.html#toc-Chapter-2

      请记住,数据库集成的“新”方法将通过记录。这是一项正在进行的工作,所以我不会急于开始学习它。

      您还可以查看 Lift in Action 的来源以获得一些想法。这是前几章中构建的旅行应用程序的链接 https://github.com/timperrett/lift-travel

      还有整本书的源代码。第 10 章是 Mapper 章节。 https://github.com/timperrett/lift-in-action

      【讨论】:

        【解决方案3】:

        Lift 中的默认 ORM 是 Mapper,它为您提供了一条快速访问数据库实体 CRUD 功能的途径。 但是,如果您想要更传统的 JPA 持久性方法(或者更确切地说是 SPA,因为在这种情况下实体将用 scala 编写),我通常会发现作为 Lift 发行版一部分的类似 JPA 的示例应用程序非常有用。要试用它,假设已安装 maven,只需键入:

           mvn archetype:generate -DarchetypeRepository=http://scala-tools.org/repo-snapshots -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype-jpa-basic_2.8.1 -DarchetypeVersion=2.3-SNAPSHOT -DgroupId=org.mycompany.myproject -DartifactId=MyProject -Dversion=1.0
        

        这将创建一个 MyProject Lift 项目,其中包含一个简单的图书馆应用程序,其中包含 2 个具有一对多关系的实体(作者和书籍)以及 CRUD sn-ps,展示了如何在符合 jdbc 的数据库。

        【讨论】:

          猜你喜欢
          • 2012-07-29
          • 2012-01-07
          • 2016-10-13
          • 2012-06-09
          • 2021-01-13
          • 2016-08-27
          • 1970-01-01
          • 2011-11-09
          • 1970-01-01
          相关资源
          最近更新 更多