Slick-pg 是一些针对 PostgreSQL 的 Slick 扩展,用于支持 PostgreSQL 的(特有)类型及/或相关函数。如果你对使用 Slick 来开发基于 PostgreSQL 的程序感兴趣,那么你会发现 slick-pg 非常有用。
有了它,我们就可以在 Scala/Slick 项目里自由的使用那些 PostgreSQL 特有的、因而 Slick 肯定不会内置支持的那些数据类型及其操作/函数来构造 SQL 查询了:
import MyPostgresDriver.simple._ class TestTable(tag: Tag) extends Table[Test](tag, Some("xxx"), "Test") { def id = column[Long]("id", O.AutoInc, O.PrimaryKey) def during = column[Range[Timestamp]]("during") def location = column[Point]("location") def text = column[String]("text", O.DBType("varchar(4000)")) def props = column[Map[String,String]]("props_hstore") def tags = column[List[String]]("tags_arr") def * = (id, during, location, text, props, tags) <> (Test.tupled, Test.unapply) } object tests extends TableQuery(new TestTable(_)) { /// def byId(ids: Long*) = tests.filter(_.id inSetBind ids).map(t => t) // will generate sql like: select * from test where tags && ? def byTag(tags: String*) = tests.filter(_.tags @& tags.toList.bind).map(t => t) // will generate sql like: select * from test where during && ? def byTsRange(tsRange: Range[Timestamp]) = tests.filter(_.during @& tsRange.bind).map(t => t) // will generate sql like: select * from test where case(props -> ? as [T]) == ? def byProperty[T](key: String, value: T) = tests.filter(_.props.>>[T](key.bind) === value.bind).map(t => t) // will generate sql like: select * from test where ST_DWithin(location, ?, ?) def byDistance(point: Point, distance: Int) = tests.filter(r => r.location.dWithin(point.bind, distance.bind)).map(t => t) // will generate sql like: // select id, text, ts_rank(to_tsvector(text), to_tsquery(?)) // from test // where to_tsvector(text) @@ to_tsquery(?) // order by ts_rank(to_tsvector(text), to_tsquery(?)) def search(queryStr: String) = tests.filter(tsVector(_.text) @@ tsQuery(queryStr.bind)) .map(r => (r.id, r.text, tsRank(tsVector(r.text), tsQuery(queryStr.bind)))) .sortBy(_._3) } ...
目前支持的 PostgreSQL 类型有:
ARRAY
JSON
Date/Time
Enum
Range
HStore
LTree
text Search
postgis Geometry
目前支持的 PostgreSQL 特性有:
这个版本的更新主要是: 增加了对 json 的支持 (PostgreSQL 9.3 正式版已经发布了,所以我适时加入了对 pg json 的支持。功能其实前两个星期就已经开发测试好了,但公司跟联邦政府的那个项目太让人操心了,到现在才真正有点空闲的时间来更新整理。) -------------------------------------------------------------------
Slick-pg v0.6.5.2 发布了,相比 0.6.3 主要更新有: - 增加了 pg LTree 的支持 - search 增强:更多操作符/方法;允许指定语言 - date2/threeten 插件:允许选择性的绑定 Duration/Period 到 pg Interval;微秒(microseconds)支持 - pg date/range/json 支持:允许一种 pg 类型同时绑
1.需要的sbt依赖 "org.scalatestplus.play" %% "scalatestplus-play" % "3.0.0" % Test, "mysql" % "mysql-connector-java" % "5.1.47", "com.typesafe.play" %% "play-slick" % "3.0.0", "com.typesafe.
以postgresql为例,使用slick orm工具进行scala数据库操作 建立build.sbt name := "Simple Project" version := "1.0" scalaVersion := "2.10.3" libraryDependencies ++= List( "com.typesafe.slick" %% "slick" % "2.0.2-RC1",
SlickSlick是MooTools的选择器引擎。它支持多种CSS2/CSS3选择器! Reverse Combinators逆向选则器. 示例: document.getElement('p ! div') //一个<div>,并这个<div>是<p>的祖先 document.getElement('p !> div') // 一个<div>,并这个<div>是<p>的直接父类(中间
Slick 是一个独立的 CSS Selector 引擎,示例代码: Slick.find(document, "#foo > bar.baz") → <bar> Slick.find(node, "#does-not-exist") → null
问题内容: 有谁知道如何在PostgreSQL中扩展频率表? 例如,变换表x: 进入 设置代码: 问题答案: 这非常简单:
我正在学习如何使用Scala和Play 2 Framemork构建应用程序。我使用activator工具创建了一个新项目,它基于当前的“play scala intro”模板。 该模板有一个使用Play-Slick 1.0管理依赖项的示例应用程序,并配置了一个H2 DB,可以正常工作。 当我尝试更改为Postgres DB时,我遇到了麻烦。我得到一个错误500,告诉我: “无法连接到数据库[默认设
Slick 是 TypeSafe 推出的 Scala 数据库访问库。开发者可以使用 Scala 语言风格来编写数据查询,而不是用 SQL,示例代码: object Coffees extends Table[(String, Int, Double)]("COFFEES") { def name = column[String]("COF_NAME", O.PrimaryKey) def su
slick 是一个基于 jQuery 的幻灯片插件,具有以下特点: 支持响应式 浏览器支持 CSS3 时,则使用 CSS3 过度/动画 支持移动设备滑动 支持桌面浏览器鼠标拖动 支持循环 支持左右控制 支持动态添加、删除、过滤 支持自动播放、圆点、箭头、回调等等 查看演示