play2.0 集成 squeryl
来源:互联网 发布:公安大数据应用 编辑:程序博客网 时间:2024/05/29 13:43
由于对play2.0自带的Anorm比较不满, 所以研究了一下如何集成squeryl到play2, 附件是示例项目, 十分简单, 仅展示了如何使用squeryl建立model到单表的映射以及查询功能.
使用的类库: play2.0, squeryl 0.9.5, h2db
主要代码清单:
Build.scala. 这里主要是引用squeryl的依赖
- import sbt._
- import Keys._
- import PlayProject._
- object ApplicationBuild extends Build {
- val appName = "playWithSqueryl"
- val appVersion = "1.0-SNAPSHOT"
- val appDependencies = Seq(
- "org.squeryl" %% "squeryl" % "0.9.5"
- )
- val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
- // Add your own project settings here
- )
- }
GlobalSettings.scala.
主要是override onStart, 在其中构建squeryl的SessionFactory. 有了这个SessionFactory, 后面才可以在Controller中使用inTranscation{...}
- import play.api._
- import org.squeryl.adapters.H2Adapter
- import org.squeryl.{Session, SessionFactory}
- import play.api.db.DB
- object Global extends GlobalSettings {
- override def onStart(app: Application) {
- implicit val _app = app
- Logger.info("Initializing squeryl session factory.")
- SessionFactory.concreteFactory = Some(() =>
- Session.create(DB.getConnection(), new H2Adapter)
- )
- Logger.info("Application has started")
- }
- override def onStop(app: Application) {
- Logger.info("Application has stopped")
- }
- }
models.Library.scala
- package models
- import org.squeryl.Schema
- class Book(val id: Long, val title: String)
- object Library extends Schema {
- val books = table[Book]("books")
- }
controllers.Application.scala
- package controllers
- import play.api._
- import play.api.mvc._
- import views._
- import models._
- object Application extends Controller {
- import org.squeryl.PrimitiveTypeMode._
- def TxAction(f: Request[AnyContent] => Result) = {
- Action {request =>
- inTransaction {
- Logger.info("Calling action in squery transation manager.")
- f(request)
- }
- }
- }
- def index = TxAction { request =>
- val books = Library.books.filter(_ => true)
- Ok(html.index(books.toList))
- }
- }
views.index.scala.html
- @(books: List[Book])
- @main("How to use squeryl with play2") {
- <div>
- @books.map { book =>
- <p> @book.title </p>
- }
- </div>
- }
0 0
- play2.0 集成 squeryl
- play 集成squeryl ORM持久化框架
- play2.0文件下载
- PLAY2.0框架快速入门
- play2 form
- play2 json
- Play 2, Scala, postgresql and Squeryl 整合
- scala+play2.2.2+slick2.0.2 + mysql5.0整合之一---基础环境搭建篇
- scala+play2.2.2+slick2.0.2 + mysql5.0整合之一基础环境搭建篇
- scala+play2.2.2+slick2.0.2 + mysql5.0整合之一---基础环境搭建篇
- scala+play2.2.2+slick2.0.2 + mysql5.0整合之一---基础环境搭建篇
- play2 的打包
- Play2 连接 Mysql配置
- scala + play2+mysql
- [翻译]Play2 整合akka
- play2控制台打印中文乱码
- play2使用非默认数据库
- play2 java 学习(二) HelloWorld
- LeetCode – 4Sum
- 如何两个模板类会相互包含,那么需要在类定义之前声明其中一个类,并且声明时要用模板。
- MFC编程时,OnTimer()函数未被调用解决方法
- codeforces-264A-Escape from Stones
- C语言<string.h>之strspn函数
- play2.0 集成 squeryl
- 杭电2036
- keil4中头文件路径设置的方法汇总
- 排序算法(三):简单选择排序
- 由基频、中频、射频零组件让你一次看懂手机芯片
- C++基础——模板的0初始化
- eclipse下载edit插件并导入github项目到真机运行
- POJ-2470(用例过了,但一直超时,难道是Java效率太低?)
- 手机m1使用总结