我想将图像插入到包含数据类型为MEDIUMTEXT的字段的表中。请任何人都可以告诉如何插入中文文本数据
psmt=con.prepareStatement("INSERT INTO ofvcard (username,vcard) " + "VALUES (?,?)");
psmt.setString(1,"admin");
fis=new FileInputStream(image);
psmt.setBinaryStream(2, (InputStream)fis, (int)(image.length()));
int s = psmt.executeUpdate();
答案 0 :(得分:3)
BLOB
值被视为二进制字符串(字节字符串)。它们没有字符集,排序和比较基于列值中字节的数值。TEXT
值被视为非二进制字符串(字符串)。它们具有字符集,并根据字符集的整理对值进行排序和比较。
因此,当在列的字符集中无效的字节序列时,您的图像文件(二进制,而不是字符,数据)可能会遇到一些编码问题遇到。
你可以而不是MEDIUMBLOB
类型,但实际上应该将文件存储在文件系统(这是专门为此目的设计的数据库)中,并简单地存储相应的文件系统路径的MySQL。
答案 1 :(得分:0)
psmt = con.prepareStatement(“INSERT INTO ofvcard(username,vcard)”+“VALUES(?,?)”); psmt.setString(1, “管理员”); pstmt.setString(2, “测试”) int s = psmt.executeUpdate();