Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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
使用slick插入MySQL_Mysql_Scala_Slick - Fatal编程技术网

使用slick插入MySQL

使用slick插入MySQL,mysql,scala,slick,Mysql,Scala,Slick,我在ampps localhost服务器上的MySQL数据库中有一个名为“KLIJENTI”的表。该表由4列组成:ID_KLIJENTA-int、IME_KLIJENTA-string、PREZIME_KLIJENTA-string和ADRESA_KLIJENTA-string。 我遵循了有关如何使用slick插入和读取数据库的教程,但它并不能满足我的需要 这是我的application.conf: scalaTest = { url = "jdbc:mysql://localhost/Scal

我在ampps localhost服务器上的MySQL数据库中有一个名为“KLIJENTI”的表。该表由4列组成:ID_KLIJENTA-int、IME_KLIJENTA-string、PREZIME_KLIJENTA-string和ADRESA_KLIJENTA-string。 我遵循了有关如何使用slick插入和读取数据库的教程,但它并不能满足我的需要

这是我的application.conf:

scalaTest = {
url = "jdbc:mysql://localhost/Scala1"
user = "root"
password = "mysql"
driver = com.mysql.jdbc.Driver
connectionPool = disabled
keepAliveConnection = true
logStatements = true
}
build.sbt:

name := """project4"""

mainClass in Compile := Some("HelloSlick")

libraryDependencies ++= List(
  "com.typesafe.slick" %% "slick" % "3.1.0-RC2",
  "org.slf4j" % "slf4j-nop" % "1.7.10",
  "com.h2database" % "h2" % "1.4.187",
  "org.scalatest" %% "scalatest" % "2.2.4" % "test" ,
  "mysql" % "mysql-connector-java" % "5.1.28"
)

fork in run := true
这是我的helloSlick.scala:

import scala.concurrent.{Future, Await}
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration.Duration
import slick.backend.DatabasePublisher
import slick.driver.MySQLDriver.api._


case class Klijent(ID_KLIJENTA: Option[Int] = None, IME_KLIJENTA: String, PREZIME_KLIJENTA: String, ADRESA_KLIJENTA: String)

class Klijenti(tag: Tag) extends Table[Klijent](tag, "KLIJENTI") {
  def ID_KLIJENTA = column[Option[Int]]("ID_KLIJENTA", O.PrimaryKey, O.AutoInc)
  def IME_KLIJENTA = column[String]("IME_KLIJENTA")
  def PREZIME_KLIJENTA = column[String]("PREZIME_KLIJENTA")
  def ADRESA_KLIJENTA = column[String]("ADRESA_KLIJENTA")

  def * = (ID_KLIJENTA, IME_KLIJENTA, PREZIME_KLIJENTA , ADRESA_KLIJENTA) <>((Klijent.apply _).tupled, Klijent.unapply)
}

// The main application
object HelloSlick extends App {

  val db = Database.forConfig("scalaTest")
  val mojiKlijenti = TableQuery[Klijenti]
  val q1 = sql"select IME_KLIJENTA from KLIJENTI WHERE ID==1 ".as[String]

  val q2 = mojiKlijenti.filter(_.ID_KLIJENTA === 0)

  println(q1)
  println(q2)
我的apache Web服务器和mysql已打开,以防万一有人问。。 为什么我得不到真正的价值


编辑:>稍后,我尝试执行以下命令
mojiKlijenti+=Klijent(一些(5),“名称”、“姓氏”、“地址”)
并且再次成功执行编译,但当我在phpmyadmin中检查数据库时,没有添加任何记录。

您没有获得实际值,因为您需要通过调用查询的结果方法将查询转换为操作并执行它

val action = q2.result
val results = db.run( action)
results.foreach( println )

我刚试过那段代码,它编译了,但它什么也不返回,结果什么也没有打印出来。这取决于过滤器
val q2=mojiKlijenti.filter(u.ID\u KLIJENTA==0)
get指定列中具有该值的行。我刚刚在数据库中添加了一行,ID\u KLIJENTA=2,第一行的值为ID_KLIJENTA=1,现在我将代码改为1,之后改为2,仍然没有结果,也没有打印任何内容:(
val action = q2.result
val results = db.run( action)
results.foreach( println )