Начало работы с Lift, использование баз данных для создания динамических сайтов - PullRequest
7 голосов
/ 23 февраля 2011

Итак, я искал в интернете хорошее объяснение того, как работает лифт в отношении баз данных.Я пока не нашел ничего очень полезного.То, что я ищу, - это простое объяснение или пример кода, который может показать, как lift подключается к своим базам данных для выполнения транзакций и как использовать это для создания новых таблиц, моделей или обновления и редактирования существующих таблиц.

Например: с django я довольно легко понял, как он генерирует таблицы базы данных из классов моделей и выполняет обновления для них с помощью методов, унаследованных от фреймворка.

В данный момент я пытаюсь создать простое приложение, в котором были бы пользователи, информация о них, сообщения на веб-сайте и т. Д.

В настоящее время я читаю доступные книги по лифтам и будуочень признателен за помощь в изучении использования лифта.

Ответы [ 3 ]

3 голосов
/ 23 февраля 2011

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 голосов
/ 23 февраля 2011

В книге Exploring Lift пример PocketChange содержит код, показывающий, как определить пользователя с помощью MetaProtoUser и других функций.Я хотел бы начать с лучшего понимания Lift, модели и встроенных объектов-прототипов CRUD и User.

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

1 голос
/ 23 февраля 2011

ORM по умолчанию в Lift - это 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-совместимом базы данных.

...