基本光滑插入示例

Sag*_*rma 9 scala slick

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

对于名为"employee"的表,其列为"employee_id,name,start_date".

这是我定义Employee类的方式:

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)
}
Run Code Online (Sandbox Code Playgroud)

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

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()
  }
}
Run Code Online (Sandbox Code Playgroud)

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

Som*_*yya 16

我尝试了这个代码,它的工作原理.

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)
}
Run Code Online (Sandbox Code Playgroud)

基本上你需要执行查询作为期货.

  • db.close不会关闭数据库连接.db close将关闭数据库的应用程序设置.连接管理由光滑内部处理.这里不需要尝试/终于. (4认同)