发布于 2015-02-24 00:54:46 | 519 次阅读 | 评论: 0 | 来源: 网友投递
Scala 编程语言
可伸缩的语言是一种多范式的编程语言,一种类似java的编程 ,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala是在JVM上运行。
可伸缩的语言是一种多范式的编程语言,一种类似java的编程 ,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala是在JVM上运行。
Slick 是 TypeSafe 推出的 Scala 数据库访问库。开发者可以使用 Scala 语言风格来编写数据查询,而不是用 SQL,示例代码:
object Coffees extends Table[(String, Int, Double)]("COFFEES") {
def name = column[String]("COF_NAME", O.PrimaryKey)
def supID = column[Int]("SUP_ID")
def price = column[Double]("PRICE")
def * = name ~ supID ~ price
}
Coffees.insertAll(
("Colombian", 101, 7.99),
("Colombian_Decaf", 101, 8.99),
("French_Roast_Decaf", 49, 9.99)
)
val q = for {
c <- Coffees if c.supID === 101
// ^ comparing Rep[Int] to Rep[Int]!
} yield (c.name, c.price)
println(q.selectStatement)
q.foreach { case (n, p) => println(n + ": " + p) }
Scala Slick 3.0.0 RC1 发布,源代码现已提供在:https://github.com/slick/slick/tree/3.0.0-RC1。Scala 2.10 (推荐 2.10.4) 和 2.11 (推荐 2.11.4) 构建现已提供在 Maven Central。
Slick 3.0 主要特性:
A new API for composing and executing database actions.
Support for the Reactive Streams API for streaming results from the database.
Improved configuration of database connections via Typesafe Config, including built-in support for HikariCP.
Support for nested Option types and non-primtive Option types in the Lifted Embedding.
Properly typed outer join operators based on the improved Option support.
A new macro-based implementation of the Plain SQL API with optional compile-time checking and type inference for embedded SQL statements.
Many small improvements and bug fixes in the schema code generator.
Optional multi-line formatting and indenting of generated SQL code for more readable debug output.
更新了大部分手册;“Slick Testkit” 和 “Plain SQL Queries” 章节将会尽快更新;将会尽快提供标准 Activator 模板。
如果没有发现什么重大问题,将会在后两周发布 Slick 3.0.0 最终版本!
Slick 2.1.0 以来的完整改进列表:
bd0c9c4
Try to prevent some spurious failures on Travis CI
58a1db9
Proper treatment of CHAR(1) columns in JdbcModelBuilder:
7f0f62f
Make code generator tests usable from other slick-extensions:
25370cb
Fix bugs detected by Slick Extensions upgrade:
12faf5d
Upgrade to Reactive Streams 1.0.0.RC3
648184c
Package structure and project layout refactoring:
9c730c0
Upgrade to Reactive Streams 1.0.0.RC2:
24770de
Add DatabaseConfig
as a higher-level configuration abstraction:
759cbc2
Restore #$
support in the macro-based Plain SQL interpolation:
62ddadc
Macro-based PlainSQL API Implemented TypedStaticQuery as tsql
d63a018
UUID regression testkit:
0a44b74
Update LiftedEmbedding.scala
5af0d9b
Distinguish between BLOB and BYTEA in PostgreSQL model builder
ec7f2aa
Use TestDB for code generator tests:
cc8d3f0
Proper support for string lengths:
41c717a
Support fetch size in statement parameters.
965604c
Use force-insert semantics for inserting from queries and expressions.
0e58e7d
Deprecate the Direct Embedding
0ba0dd5
Remove the blocking API that was introduced in 3.0.0-M1
2f64c79
Rename Action to DBIO:
86974bd
Simplify SQLBuilder and formatting/indenting:
20378ec
Quote SqlType
argument in code generator.
b1dca21
Make ColumnOptions more modular:
7272180
Use unconstrained text type as default on PostgreSQL
6cec3f7
Prefer prepareStatement(sql) instead of prepareStatement(sql, Int, Int)
a3eec4f
Support transaction isolation levels
6ea7fdb
Generic fusion implementation for FlatMapAction and CleanupAction:
706f2b1
Allow the SQL statements to be overridden in SqlActions.
a325f5e
Run a user-defined init function on all created JDBC Statements
3315a3b
Refactoring of ActionContext:
dc687de
Avoid long nested sequences of SchemaDescription.++ in generated code:
62d5e92
Quote illegal identifiers in generated Scala sources.
58c4ed5
Make ‘desiredColumnOrder’ in code generator non-final.
a645205
Support statement parameters in the new Action-based API.
b1c5b66
Switch JDBC metadata API and code generator to the new API.
c92a615
Fix typo in orm-to-slick.rst
d4f019f
Move profile-level Action definitions outside of profiles.
5cd423f
Deprecate Invoker convenience methods and iteratees
7d576c8
Properly deprecate .Implicit and .simple in all profile levels
30c135e
Upgrade to sbt 0.13.7
e9274ec
Improve build system for documentation:
a6e3b9b
Further modularization of Slick:
4ab4a6b
Switch Direct Embedding over to the new Action-based API.
ac37f1c
Update documentation for 3.0:
e6562c7
Simplify Action Effect handling:
06d1ca0
Increase timeout for Reactive Streams TCK tests.
efbe6f6
Bump version numbers:
4d42528
Add concurrency stress test for streaming API:
80929a6
Documentation plus minor improvements and fixes:
273b957
Update to Reactive Streams 1.0.0.M3 and fix remaining PR review issues:
688d7f2
Convert more test cases and add missing features:
d862e0f
Optimize the streaming engine and fix some bugs:
9ad62a9
Implement streaming via Reactive Streams API:
6a85767
Convert several test cases to the new API.
8ef6cde
Add basic transaction support for database actions.
09590fd
Implement session pinning for database Actions:
66a9b41
Basic implementation of action monad and asynchronous execution engine:
bf17772
Use HikariCP by default (instead of no connection pooling):
4569c52
Simplify connection pool configuration
cc92c26
Simplify thread pool configuration:
423e78c
Remove the option to disable auto-commit for new connections.
e4dddcd
Remove BoneCP support and drop configuration compatibility with Play.
812100e
Add HikariCP support in addition to BoneCP.
bb58103
Add primitives and configuration for async execution of blocking I/O
0ea777a
Fix broken build due to merging nested options support
8d4a02f
Ensure generated file ends with a newline character.
9cdf7ec
Make comment format match others in file.
ef5f9a8
Avoid indenting blank lines, to avoid trailing whitespace.
8225a8f
Add Option-extended joins:
75583dc
Lifted Embedding encoding of nested and multi-column Option types:
de389a4
Remove the Column type.
5da96b4
Update orm-to-slick.rst
7a1d119
modified to use GlobalConfig.
777dbeb
Add SimpleLiteral factory (and fix one unrelated unchecked warning)
82b258f
Use Unicode symbols in tree and table dumps for better readability.
f54d272
Add BoneCP support to Database.forConfig.
369ad73
Use application.conf for Slick settings.
61d032b
Corrected docs to use “inSet” instead of “inSeq”
b0b0252
Fix forceInsertAll for single argument
770d0a1
Update build for 2.2.0-SNAPSHOT
cb8183d
Added support for string function repeat.
57aa9e7
Workaround to pass Travis CI.
7a58f7f
Try for SQL String Indentation.
更多改进内容请看发行说明。