任何人都可以使用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()
}
}
该表在目标数据库上正常创建,但该行未插入且没有错误。非常感谢任何帮助。
答案 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)
}
基本上你需要将查询作为期货来执行。