mysql - Slick 3 - SQL Plain - MySQL 日期

标签 mysql scala slick

我正在尝试将一个简单的 java.util.Date 插入到 MySQL TIMESTAMP 字段 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.Datejava.sql.Timestamp 的隐式转换,而是直接插入 java.sql.Timestamp

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

db.run(sqlu)

或提供scala implicit 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)

关于mysql - Slick 3 - SQL Plain - MySQL 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40363035/

相关文章:

scala - 如果 Scala 方法可以抛出/返回错误但具有 Unit 返回类型,那么它应该具有什么返回类型?

java - 使用 slick 和 hikariCP 的 SSL 连接

scala - 使用可选列更新 Scala Slick 行

mysql - 如何在Mysql中使用相同的查询删除3个表中的一行

mysql - 当我在 Commend 提示符下输入 NETSTAT -NA 时,Windows 中 TIME_WAIT 状态的含义是什么?

MySQL:COM_SELECT 以 1000/秒的速度增加,但进程列表几乎为空

scala - 如何在案例类中定义自定义相等性

scala - 在 Ga特林 中设置异步调用超时

scala - <> 运算符在 Slick 中起什么作用?

mysql - Ruby mysql2 gem,无法在 Windows 7 上构建