如何使用 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 数据类型