提升入门,使用数据库构建动态站点

时间:2011-02-23 04:38:09

标签: database scala lift

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

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

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

我目前正在阅读可用的升降机书籍,非常感谢学习如何使用升降机的更多帮助。

3 个答案:

答案 0 :(得分:3)

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中读到它。

答案 1 :(得分: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

答案 2 :(得分:1)

Lift中的默认ORM是Mapper,它为您提供了数据库实体的CRUD功能的快速路径。 但是,如果您想要更传统的JPA持久性方法(或者更确切地说是SPA,因为在这种情况下实体将使用scala编写),我通常会发现非常有用的类似于JPA的示例应用程序是Lift分发的一部分。要试用它,假设安装了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项目,其中包含一个简单的库应用程序,其中包含两个具有一对多关系的实体(作者和书)以及CRUD代码段,显示如何在符合jdbc的情况下创建和编辑此类实体数据库中。