使用CodenameOne Web数据库扩展,我可以获得用于字符串和数字的基本SQL字段,但不适用于大型二进制对象BLOB。我正在按照此处的说明进行操作:https://www.codenameone.com/blog/connecting-to-a-mysql-database-part-2.html CodenameOne支持BLOB吗?如果是这样,您该怎么做?我找不到任何使用BLOB类型的示例。
我尝试使用长字符串,并且使用MarianaDB,最大字符串大小可以达到512K,但是我需要存储更大的图像。
MariaDB [(none)]>使用tsg; desc照片; 数据库已更改 + ------------ + ------------------ + ------ + ----- + ---- ----- + ---------------- + |领域类型空|关键默认值|额外| + ------------ + ------------------ + ------ + ----- + ---- ----- + ---------------- + | id | int(10)无符号|否| PRI | NULL | auto_increment | | player_id | int(11)|否| | NULL | | | tree_id | int(11)|否| | NULL | | | photo_type |长文本|否| | NULL | | |图片斑点|是的| NULL | | + ------------ + ------------------ + ------ + ----- + ---- ----- + ---------------- + 设置5行(0.001秒)
当我添加不带斑点的记录时,它会起作用:
m.put("playerId", "1");
m.put("treeId", "2");
m.put("photoType", "front");
m.put("image", null);
client.create(m, res -> {
System.out.println(m);
System.out.println("create result = " + res);
});
输出: {treeId = 2,图片=空,photoType =前,playerId = 1} 创建结果= true
但是当我尝试添加Blob时,它不会:
m.put("playerId", "1");
m.put("treeId", "2");
m.put("photoType", "front");
byte bytes[] = new byte[100];
m.put("image", bytes);
client.create(m, res -> {
System.out.println(m);
System.out.println("create result = " + res);
});
输出:
{treeId = 2,图像= [B @ 5968c8cb,photoType = front,playerId = 1} 创建结果=假
帮助!我使用BLOB的方式错误,还是CN1不支持BLOB?
唯一的错误消息来自create的结果为false。