CodeName One是否使用RESTful数据库接口支持MYSQL BLOB?

时间:2019-06-14 20:45:47

标签: mysql netbeans glassfish codenameone

使用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。

1 个答案:

答案 0 :(得分:1)

目前尚无内置支持。您可以使用MultipartRequest将二进制数据提交到服务器。