Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 理解scala slick_Java_Scala_Jdbc_Slick_Jdbc Postgres - Fatal编程技术网

Java 理解scala slick

Java 理解scala slick,java,scala,jdbc,slick,jdbc-postgres,Java,Scala,Jdbc,Slick,Jdbc Postgres,现在,我正在编写学习scala slick的示例。我正在使用一些github项目和stackoverflow Q&A。下面是我的示例代码: import scala.slick.driver.PostgresDriver.simple._ import Database.threadLocalSession object TestApp extends App{ case class MyTable(id: Option[Int], foo: String, bar: String)

现在,我正在编写学习scala slick的示例。我正在使用一些github项目和stackoverflow Q&A。下面是我的示例代码:

import scala.slick.driver.PostgresDriver.simple._
import Database.threadLocalSession


object TestApp extends App{

  case class MyTable(id: Option[Int], foo: String, bar: String) 

  object MyTables extends Table[MyTable]("mytable") { 
    def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
    def foo = column[String]("foo", O.NotNull) 
    def bar = column[String]("bar", O.NotNull) 
    def * = id.?  ~ foo ~ bar <> (MyTable, MyTable.unapply _)
    def forInsert = foo ~ bar <>
        ({ (f, l) => MyTable (None, f, l) }, { ep:MyTable => Some((ep.foo, ep.bar)) })
        val findByID = createFinderBy(_.id)
   } 

    implicit val session = Database.forURL("jdbc:postgresql://localhost:5432/myserver",
                         driver="org.postgresql.Driver",
                         user="myadmin",
                         password="myadmin") 
    session withTransaction {
      MyTables.ddl.create
        MyTables.foo ~ MyTables.bar).insert("Homer", "Simpson")
      MyTables.forInsert.insertAll(
        MyTable(None, "Marge", "Bouvier"),
        MyTable(None, "Carl", "Carlson"),
        MyTable(None, "Lenny", "Leonard")
      )
    }

}
我正在使用以下工具和库:

Scala IDE-2.10 Java版本-1.7.0_11 光滑2.10.0-M4-0.10.0-M2.jar postgresql-9.2-1003-jdbc4.jar 数据库-PostgreSQL 8.3
这里怎么了?提前感谢。

几句话:Database.forURL返回数据库对象,而不是会话。它不需要是隐式的。此外,建议删除threadLocalSession导入,改为使用withTransaction{implicit session=>…}。除此之外,您显示的代码不会编译。在MyTables.foo~MyTables.bar.insertHomer,Simpson中有一个未打开的括号,您可能想这样做:querytables.mapr=>r.foo,r.bar.insertHomer,SimpsonMy guess here配置问题。在Scala 2.10中不存在Scala/Right,它有Scala.util.Right。
CREATE TABLE mytable
(
    id            serial primary key,
    foo           VARCHAR(40) not null,
    bar           VARCHAR(40) not null,
);