基本光滑插入示例

时间:2016-04-06 15:05:02

标签: scala slick

任何人都可以使用Slick 3.1.1帮助我使用基本的插入示例。 使用的数据库是SQL Server。

对于名为" employee"的表有列" employee_id,name,start_date"。

这就是我定义员工类的方式:

class Employee(tag: Tag) extends Table[table_types.user](tag,  "EMPLOYEE") {

  def employeeID = column[Int]("EMPLOYEE_ID")
  def empName = column[String]("NAME")
  def startDate = column[String]("START_DATE")

  def * = (employeeID, empName, startDate)
}

这就是我为创建表和插入数据所写的内容:

object Hello extends App {

  val db = Database.forConfig("test")
  val employee = TableQuery[Employee]
  db.run(employee.schema.create)

  try {
    val insert_action = DBIO.seq(employee += (1, "abc", "2016-01-01"))
    db.run(insert_action)
  }
  finally {
    db.close()
  }
}

该表在目标数据库上正常创建,但该行未插入且没有错误。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:13)

我尝试了这段代码并且有效。

object TestSlick extends App{
  val db = Database.forConfig("h2mem1")
  val employee = TableQuery[Employee]
  try {
  Await.result(db.run(DBIO.seq(
      // create the schema
      employee.schema.create,

      // insert two User instances
      employee += (1, "abc", "2016-01-01"),

      // print the users (select * from USERS)
      employee.result.map(println))), Duration.Inf)
    } finally db.close
}

class Employee(tag: Tag) extends Table[(Int,String,String)](tag,"EMPLOYEE") {
  def employeeID = column[Int]("EMPLOYEE_ID")
  def empName = column[String]("NAME")
  def startDate = column[String]("START_DATE")

  def * = (employeeID, empName, startDate)
}

基本上你需要将查询作为期货来执行。