Can anyone please help me with a basic Insert example using Slick 3.1.1. Database used is SQL Server.
For a table named "employee" having columns "employee_id, name, start_date".
This is how I defined the Employee Class:
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)
}
And this is what I wrote for creating the table and inserting data:
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()
}
}
The table is created fine on the destination database but the row does not get inserted and there are no errors. Any help is much appreciated.
I tried this code and it works.
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)
}
Basically you need to execute the queries as futures.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With