Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Slick 3-sqlplain-MySQL日期_Mysql_Scala_Slick - Fatal编程技术网

Slick 3-sqlplain-MySQL日期

Slick 3-sqlplain-MySQL日期,mysql,scala,slick,Mysql,Scala,Slick,我试图将一个简单的java.util.Date插入MySQL时间戳字段slick 3和普通查询中 sqlu"""INSERT INTO Table (name, date) VALUES (${obj.name}, ${obj.date})""" 当我只插入字符串值时,它工作得非常好 我找到了许多关于隐式转换的解释,并提出: implicit val JavaUtilDateMapper = MappedColumnType .base[java.util.Date

我试图将一个简单的java.util.Date插入MySQL时间戳字段slick 3和普通查询中

sqlu"""INSERT INTO Table
     (name, date)
  VALUES
     (${obj.name}, ${obj.date})"""
当我只插入字符串值时,它工作得非常好

我找到了许多关于隐式转换的解释,并提出:

implicit val JavaUtilDateMapper =
  MappedColumnType .base[java.util.Date, java.sql.Timestamp] (
    d => new java.sql.Timestamp(d.getTime),
    d => new java.util.Date(d.getTime))

sqlu"""INSERT INTO Table
     (name, date)
  VALUES
     (${obj.name}, ${obj.date})"""
db.run(sqlu)
但我还是有错误: 错误:(57,5)找不到参数e的隐式值:slick.jdbc.SetParameter[java.util.Date] sqlu“”插入到表中

我该怎么办


感谢您

而不是提供从
java.util.Date
java.sql.Timestamp
的隐式转换,并直接插入
java.sql.Timestamp

sqlu"""INSERT INTO Table
     (name, date)
  VALUES
     (${obj.name}, ${new Timestamp(obj.date.getTime)})"""

db.run(sqlu)
或者提供scala隐式def

implicit def toSQLTime(date: java.util.Date): java.sql.Timestamp = new java.sql.Timestamp(date.getTime)

 sqlu"""INSERT INTO Table
         (name, date)
      VALUES
         (${obj.name}, ${obj.date: java.sql.Timestamp})"""

    db.run(sqlu)

感谢您的回答。不过,此解决方案每次(${obj.date:java.sql.Timestamp})都需要某种手动转换