【问题标题】:Basic Slick Insert Example基本光滑插入示例
【发布时间】:2016-04-06 15:05:02
【问题描述】:

谁能帮我做一个使用 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()
  }
}

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

【问题讨论】:

    标签: scala slick


    【解决方案1】:

    我试过这段代码,它可以工作。

    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)
    }
    

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

    【讨论】:

    • 我是 Stackoverflow 的新手。它不允许我投票。
    • 哦,好吧 :) 没关系。您所能做的就是尝试单击向上箭头。谢谢和欢呼!
    • 有没有一种简单的方法可以忽略 'id' 字段并让 Slick & DB 自动生成主键?
    • db.close 不会关闭数据库连接。 db close 将关闭数据库的应用程序设置。连接管理由 slick 在内部处理。这里不需要 try / finally。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2018-05-12
    相关资源
    最近更新 更多