You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin Exposed中使用MySQL的MediumBlob存储图片

在Kotlin Exposed中实现并使用MediumBlob类型

1. 自定义MediumBlob列类型

Exposed未内置MediumBlob支持,需继承BlobColumnType并修改对应SQL类型:

class MediumBlobColumnType : BlobColumnType() {
    override fun sqlType(): String = "MEDIUMBLOB"
}

2. 给Table类扩展便捷方法

为了在数据表定义中直接调用,给Table添加扩展函数:

// 支持可空的MediumBlob列
fun Table.mediumBlob(name: String): Column<ByteArray?> = registerColumn(name, MediumBlobColumnType())

// 可选:非空版本
fun Table.mediumBlob(name: String): Column<ByteArray> = 
    registerColumn(name, MediumBlobColumnType()).apply { isNullable = false }

3. 在数据表中使用

替换原有的blob方法为自定义的mediumBlob即可:

object Orgs : Table() {
    val id = integer("id").autoIncrement()
    val photoOrg = mediumBlob("photoOrg").nullable()
}

生成的数据库列会是MEDIUMBLOB类型,最大可存储16MB的数据,足以满足普通图片ByteArray的存储需求。

内容的提问来源于stack exchange,提问作者abobus_f1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:48:13