我已将图像以 Base64 编码格式插入到 H2 数据库中,因为图像的尺寸非常小(即图标 < 5KB)。
我为此使用了 CLOB 数据类型,并将其正确存储在“img”列中。
即
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACtSURBVChTVY8LEsIgDES5qybY6SHKp3oKsR5CqxezJdA6pqT+ZnaGhEc2i4o0i8aYrPXhdI6UP5dfTJQR0RjDeEg/eEh5jBPfgsbGGq7/MNtKAwBlemUsZYzjIcQdS2tA3ALwsUNdHUOnQuhc653fe+8BNnVdte2BW9bleiu7RxKrEs2VHLIxK24oPQVrrZvGFrYk5WLB74+uybl+0GLAY5Jc3CbO0ff38rSI5hdpMe9eZGPCOAAAAABJRU5ErkJggg==
问题是在执行select *
时,它显示:
"clob19: SPACE(398 /* table: 4875 id: 1 */)"
而不是我提到的实际字符串。我从 jquery/ajax (不是 Java)调用这个 SELECT * ,所以 json 中的 ajax 响应显示如下:
[{"img":"clob19: SPACE(398 \/* table: 4875 id: 1 *\/)","type":"abc","id":"1"}]
如何将 img 数据转换为字符串以获取我的 Base64 文本?
最佳答案
我对 hsqldb 也有类似的问题,它就像 h2 的姐妹。
我选择了使用 longvarchar 数据类型而不是 clob 来解决问题的简单方法,以便使用文本数据而不是二进制数据。
行数超过 10^6 时性能良好
在 H2 中,整数 = ] -2147483648 ; 2147483647[所以我想你可以在文本字段中存储至少 2GB 的数据
关于javascript - 如何在 Javascript 中将 CLOB 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42196448/