`
tomorrow009
  • 浏览: 46055 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

play2.0 集成 squeryl

阅读更多

由于对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>
}
 

 

分享到:
评论
2 楼 tomorrow009 2012-07-25  
aninfeel 写道
play2.0自废武功了,虽然api和配置项更规范了,但是热加载能力回到了普通j2ee的水平,比规范?比得过各种j2ee吗?

此评论貌似和本文无关.
1 楼 aninfeel 2012-07-16  
play2.0自废武功了,虽然api和配置项更规范了,但是热加载能力回到了普通j2ee的水平,比规范?比得过各种j2ee吗?

相关推荐

    play2.0 for java developers.pdf

    ### Play2.0 for Java Developers #### 概述 Play2.0是一个现代的Web应用框架,它基于Java和Scala语言构建,旨在提供简洁、快速且可扩展的应用开发体验。对于Java开发者而言,Play2.0提供了一套完整的Java API,...

    Play 2.0 Documentation.pdf

    - **与 Akka 集成**:Akka 是一个用于构建高度并发、分布式和容错系统的工具包,文档解释了如何将 Akka 集成到 Play 2.0 中。 - **国际化**:提供了多语言支持的方法,帮助开发者创建全球化应用。 - **全局对象**:...

    Play framework 2.0 -第一个应用程序

    《Play Framework 2.0 - 创建你的第一个应用程序》 Play Framework 2.0 是一个开源的Web应用框架,它基于Scala和Java语言,遵循“模式-动作”(Action)架构,提供了一种轻量级、敏捷开发的方式。本篇文章将引导你...

    Play framework 2.0入门教程(四)的源代码,Play留言板(数据库版)

    此外,Play框架与Akka框架紧密集成,提供非阻塞I/O和异步处理能力,提升了应用的性能和响应速度。 在创建“Play留言板”应用时,我们首先要配置数据库连接。这里使用的是MySQL,一个广泛使用的开源关系型数据库管理...

    play1.2.4集成Swagger

    在"play1.2.4集成Swagger"的场景中,我们需要将Swagger整合到Play Framework 1.2.4版本中,以便为我们的API提供强大的文档和测试功能。以下是一些关键步骤和知识点: 1. **安装Swagger**: 首先,你需要添加Swagger...

    Play framework 2.0入门教程(三)的源代码,Play留言板

    6. **测试(Testing)**:Play Framework支持单元测试和集成测试,允许开发者编写针对模型、视图和控制器的测试用例。测试代码可以帮助确保应用程序的正确性,尤其是在开发过程中。 7. **依赖管理(Dependency ...

    Google Play结算库V2.0.3 接入实例

    在Android应用开发中,Google Play结算库是开发者用于集成Google Play内购服务的重要工具。本文将详细介绍如何接入Google Play结算库V2.0.3版本,并实现支付流程,以及调用支付的封装。 首先,我们需要了解Google ...

    VideoPlayer2.0.zip

    UDP通信协议播放器: 功能如下: 1.播放 2.暂停 3.停止 4.上一个视频 5.下一个视频 6.指定视频播放 7.音量 十 8.音量 一

    苹果设备认证芯片2.0C

    ### 苹果设备认证芯片2.0C:深入解析 #### 一、概述 苹果公司推出的附件设备认证芯片手册2.0C版本是为开发者提供的一份重要文档,旨在帮助他们了解并应用苹果设备的认证机制。这份文档包含了苹果认证芯片(iPod ...

    iOS airplay集成

    airplay 集成文档, 快速集成,用于展示airplay按钮等

    三星Play Camera For XP 2.0.0.15

    "setup.exe"是安装程序,它是将三星Play Camera For XP 2.0.0.15集成到用户计算机中的关键文件。运行这个可执行文件,用户可以按照向导提示完成软件的安装过程。在安装过程中,系统会检查兼容性、复制必要的文件、...

    GooglePlay2:GooglePlay2.0,基本修复所有bug,应用市场,一款应用下载软件,框架式编程,使用ButterKnife,okHttp网络请求,glide图片加载,联动ToolBar。https

    GooglePlay2 GooglePlay2.0,应用市场,一款应用下载软件,框架式编程,使用ButterKnife,okHttp网络请求,glide图片加载。 第二版效果图 GooglePlay第一版效果图

    苹果carplay开发资料

    综上所述,CarPlay是一个高度集成、设计以用户为中心、不断更新的技术平台。它将智能手机与汽车紧密地结合起来,为驾驶者提供了一个更加安全和便捷的使用环境。开发者若要开发或优化CarPlay相关应用,必须遵循苹果...

    c-play播放器v2.0b39.rar

    c-play v2.0b39官网最新版,这是一款非常不错的播放器,适当设置一下,声音要比foobar好,另外缓冲设置也比较重要,听感变化很大。用来播放音乐还是非常不错滴。注:要使用这个播放器,你的声卡必须支持asio,或...

    Android支付宝支付2.0demo

    本教程将详细讲解如何在Android应用中集成支付宝支付2.0版本,主要关注核心流程、关键API以及注意事项。 首先,我们需要了解支付宝支付2.0的主要特性。它提供了更安全、快速的支付体验,同时简化了开发者集成过程。...

    USB2.0技术规范(中文).pdf

    13. USB的热插拔(Hot Swapping)和即插即用(Plug and Play):USB设备可以在不关闭电源的情况下进行连接和断开,且系统能自动识别和配置设备。 通过USB2.0技术规范,设计者可以构建符合标准的USB设备,并确保这些...

    ActionScript2.0

    10. **集成外部资源**:SWF、JPEG、MP3等不同格式的文件可以通过ActionScript 2.0加载到Flash项目中,增强内容的多样性。 文件"actionscript2.0.chm"很可能是一个帮助文档,它包含了ActionScript 2.0的详细参考信息...

    集成Google Play 结算库 4.0 版.rar

    在Android应用开发中,集成Google Play结算库是一个关键步骤,它允许开发者为用户提供方便、安全的内购体验。Google Play结算库4.0版本引入了一系列更新和改进,以提升用户体验和开发者工具的功能性。以下是对这个...

    AS2.0视频播放器原码

    例如,`video.play()`用于播放视频,`video.pause()`暂停,`video.seek(time)`跳转到指定时间点,`video.width`和`video.height`调整视频尺寸,`video.attachNetStream(netStream)`连接到网络流等。 6. **事件处理*...

Global site tag (gtag.js) - Google Analytics