如何使用 slick 将 Blob 类型的列插入数据库?

Posted

技术标签:

【中文标题】如何使用 slick 将 Blob 类型的列插入数据库?【英文标题】:How to insert a cloumn of type Blob into Data base using slick? 【发布时间】:2020-05-08 13:19:47 【问题描述】:

我有下表:

class ExampleTable(tag: Tag) extends Table[Example](tag, "example") 

  def id      = column[Long]("id", O.PrimaryKey, O.AutoInc)
  def content = column[Blob]("content")

  def * = (id, content).mapTo[Example]

case class Example(id:Long ,content: Blob)

我使用了 serialBlob 类,但在运行时出现异常。

val blob = new SerialBlob(fileInbytes) 

例外是:

java.lang.ClassCastException: com.jolbox.bonecp.ConnectionHandle cannot be cast to oracle.jdbc.OracleConnection

如何将 Blob 类型的文件插入数据库? 谢谢

【问题讨论】:

【参考方案1】:

你在那里的东西看起来应该可以在 Blob 方面工作。

但是,错误 (ConnectionHandle cannot be cast to oracle.jdbc.OracleConnection) 看起来很可疑。仔细检查您的依赖项以确保您拥有正确的 Oracle 驱动程序,并且您已导入 slick.jdbc.OracleProfile.api._

如果有帮助,用Array[Byte] 而非Blob 定义表和案例类可能更常见。 Slick 具有内置转换功能,可在创建架构和查询时采用 Array[Byte] 并将其视为 Blob

【讨论】:

以上是关于如何使用 slick 将 Blob 类型的列插入数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 informix 中插入 blob 或 clob 列

play-slick 1.0.0:无法定义类型为 java.sql.Date 的列

在 slick、scala 中处理 Postgres json 数据类型

求助oracle高手,将varchar类型数据插入到blob类型字段中

mysql如何把16进制转换成中文字符显示

如何在BLOB字段进行文本搜索