大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
基础知识:
- 在 Java 在, java.lang.String 它可以用来表示长串(超过长度 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中还提供了 java.sql.Clob 和 java.sql.Blob 类型, 它们分别和标准 SQL 中的 CLOB 和 BLOB 类型相应. CLOB 表示字符串大对象(Character Large Object), BLOB表示二进制对象(Binary Large Object)
- Mysql 不支持标准 SQL 的 CLOB 类型, 在 Mysql 中, 用 TEXT, MEDIUMTEXT 及 LONGTEXT 类型来表示长度操作 255 的长文本数据
- 在持久化类中, 二进制大对象能够声明为 byte[] 或 java.sql.Blob 类型; 字符串能够声明为 java.lang.String 或 java.sql.Clob
- 实际上在 Java 应用程序中处理长度超过 255 的字符串, 使用 java.lang.String 比 java.sql.Clob 更方便
<!– 若希望精确映射 SQL 类型, 能够使用 sql-type 属性. –>
<property name=”content”>
<column name=”CONTENT” sql-type=”mediumtext”></column>
</property>
<property name=”image”>
<column name=”IMAGE” sql-type=”mediumblob”></column>
</property>
@Test public void testBlob() throws Exception{ News news = new News(); news.setAuthor("cc"); news.setContent("CONTENT"); news.setDate(new Date()); news.setDesc("DESC"); news.setTitle("CC"); InputStream stream = new FileInputStream("Hydrangeas.jpg"); Blob image = Hibernate.getLobCreator(session) .createBlob(stream, stream.available()); news.setImage(image); session.save(news); }
读取二进制blob:
@Test public void testBlob() throws Exception{ News news = (News) session.get(News.class, 1); Blob image = news.getImage(); InputStream in = image.getBinaryStream(); System.out.println(in.available()); }
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117872.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...