由于对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>
}
分享到:
相关推荐
play2.0 for java developers.pdf
Play 2.0 Documentation.pdf
NULL 博文链接:https://shenbai.iteye.com/blog/1522718
Play framework 2.0入门教程(三)的源代码,Play留言板,详见http://blog.csdn.net/wfdztl521/article/details/8545838
Play framework 2.0入门教程(四)的源代码,Play留言板(数据库版),详见http://blog.csdn.net/wfdztl521/article/details/8766988
play集成Swagger,希望能帮助到大家,目前好像只能支持1.2.4,其他版本的play测试了下貌似不行
UDP通信协议播放器: 功能如下: 1.播放 2.暂停 3.停止 4.上一个视频 5.下一个视频 6.指定视频播放 7.音量 十 8.音量 一
airplay 集成文档, 快速集成,用于展示airplay按钮等
三星Play Camera For XP 2.0.0.15
GooglePlay2 GooglePlay2.0,应用市场,一款应用下载软件,框架式编程,使用ButterKnife,okHttp网络请求,glide图片加载。 第二版效果图 GooglePlay第一版效果图
Google Play结算库V2.0.3版本 接入实例,主要实现了接入流程,及支付流程,及调用支付的封装
carplay开发说明文档,汽车上用的carplay连接说明资料。
c-play v2.0b39官网最新版,这是一款非常不错的播放器,适当设置一下,声音要比foobar好,另外缓冲设置也比较重要,听感变化很大。用来播放音乐还是非常不错滴。注:要使用这个播放器,你的声卡必须支持asio,或...
airplay归来,小身材,大能量。 airplay飞乐,音乐为我而生!! airplay特色功能 不到1mb小身材,绿色软件免安装 原生读取压缩文件(rar/zip) 原生无缝播放支持(压缩状态有效) pure music纯音还原技术,还原纯净...
play20-spring-demo, 在播放 2.0应用程序中使用 spring 在播放 2.0应用程序中使用 spring的这是一个简单的应用程序演示如何将播放 2.0应用程序组件与 Spring Framework 应用程序集成。请注意,同样的技术可以应用到...
Play Framework是一个开源的Web应用框架,使用Scala和Java语言混合编写。...本文主要对Play Framework最新第二版(Play 2.0)进行讲解。 目前本文所刊载网站 cn.tanshuai.com 就是基于Scala和Play Framework。
最新 Google支付 Google Play 结算库 4.0 版:从创建定价、商品到测试、支付成功等步骤
play2 文档部分翻译 Actions, Controllers and Results HTTP路由
专门为消音而设计的软件进行的,下面我们...或者使用Vogone提供的预设值Play Vogone 1和Play Vogone 2,立即就可以听到消音后的歌曲,非常简单。消音后会出现低频有所衰减的情况,可以使用Cool Edit的均衡器进行弥补。