scala编程语言使用slick进行数据库操作
来源:互联网 发布:华为网管软件esight 编辑:程序博客网 时间:2024/05/21 11:38
以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",
"org.slf4j" % "slf4j-nop" % "1.6.4"
)
创建src/main/scala/com/xueyu/Mydb.scala
package com.xueyuimport scala.slick.driver.PostgresDriver.simple._import java.sql.{Timestamp, Time, Date}import java.text.SimpleDateFormatcase class TestCase(name: String, count: Int, time: Timestamp)class TestTable(tag:Tag) extends Table[TestCase](tag, "mytestscaladb1") { def name = column[String]("name", O.PrimaryKey) def count = column[Int]("count") def time = column[Timestamp]("time") def * = (name, count, time) <> (TestCase.tupled, TestCase.unapply)}object mydbtest { def main(args: Array[String]) { val db = Database.forURL(url = "jdbc:postgresql://172.18.2.180:5432/scaladb?user=postgres&password=password", driver = "org.postgresql.Driver") val tsFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") def ts(str: String) = new Timestamp(tsFormat.parse(str).getTime) val MyTests = TableQuery[TestTable] db withSession { implicit session: Session => MyTests forceInsertAll(TestCase("xueyu", 37, ts("2013-12-01 11:00:00"))) MyTests += TestCase("wo de ceshi", 101, ts("2014-02-28 23:02:02")) MyTests += TestCase("datetime test", 121, ts("2014-04-09 10:02:27")) println("mytestscaladb:") MyTests foreach { case TestCase(name, count, time) => println(" " + name + "\t" + count + "\t" + time) } val q1 = (for { c <- MyTests } yield (c.count)) q1 foreach { case (count) => println("q1 query:" + count) } } }}
建立lib目录,下载较新版本的postgresql-jdbc driver至lib目录,这里下载的是postgresql-9.3-1101.jdbc4.jar
在build.sbt中使用libraryDependency下载的driver比较老,不能用
(针对postgres的扩展),使用slick-pg,支持pg特定的array, date, range, hstore, search等类型
在build.sbt中的libraryDependencies 中添加 "com.github.tminglei" % "slick-pg_2.10" % "0.5.3"
扩展后的driver是
package com.xueyuimport scala.slick.driver.PostgresDriverimport com.github.tminglei.slickpg._trait MyPostgresDriver extends PostgresDriver with PgArraySupport with PgDateSupport with PgRangeSupport with PgHStoreSupport with PgSearchSupport { /// override val Implicit = new ImplicitsPlus {} override val simple = new SimpleQLPlus {} ////// trait ImplicitsPlus extends Implicits with ArrayImplicits with DateTimeImplicits with RangeImplicits with HStoreImplicits with SearchImplicits trait SimpleQLPlus extends SimpleQL with ImplicitsPlus with SearchAssistants}object MyPostgresDriver extends MyPostgresDriver
在相关数据库中建立数据表"mytestscaladb1",分别有name varchar(20), count integer, time timestamp域类型,使用sbt compile, sbt run运行程序
0 0
- scala编程语言使用slick进行数据库操作
- scala数据库访问tool slick
- scala slick基本使用教程
- Slick 3.0.0 RC1 发布,Scala 数据库访问层
- slick使用普通的sql操作数据
- SLICK+SQLITE+SCALA
- scala+play+slick + mysql
- scala slick 使用macro 实现根据字段名排序
- Scala使用Actor进行并发编程
- 使用DDL,DML语言对数据库进行基本操作。
- Scala 的数据库访问框架:Slick 3.0 移除了 session 相关的 API
- 【scala 数据库操作】scala操作mysql数据库
- 使用FMDB进行数据库操作
- 使用FMDB进行数据库操作
- 使用FMDB进行数据库操作
- 使用FMDB进行数据库操作
- 使用FMDB进行数据库操作
- 使用OTL进行数据库编程
- Java开发中的23种设计模式详解
- DFS & BFS
- 来自星星的你
- eclipse发开文件所在位置插件Easy Explore
- MFC分割窗口的实现
- scala编程语言使用slick进行数据库操作
- GitHub上最火的40个Android开源项目
- bind/function使用
- Centos 升级GLIBCXX
- EF二三事
- ClickableSpan造成Listview的OnItemClickListener失效的解决办法
- check_sudoku
- Android 自定义控件与属性
- 男子自制吸金球盗黄金数斤,狂赚200万