今天做一个图片Base64的数据插入到MySql中,其中数据字段为Blob类型,再网上找了好多方法才找到一个比较好点的转换,代码如下:
注意如下:在MySql数据库下,Blob是有大小限制,享用大数据建议用LongBlob
Clob c = new SerialClob(s1.toCharArray());//String 转 clob
Blob b = new SerialBlob(s1.getBytes("GBK"));//String 转 blob
// 也可以这样不传字符集名称,默认使用系统的
// Blob b = new SerialBlob(s1.getBytes());
String clobString = c.getSubString(1, (int) c.length());//clob 转 String
String blobString = new String(b.getBytes(1, (int) b.length()),"GBK");//blob 转 String
// 前面若没传入字符集名称,则这里也不需要传入,以免出错
// String blobString = new String(b.getBytes(1, (int) b.length()));
mysql
插入二进制
文件
,
blob
类型,遇到问题及解决办法:首先是
数据
库建立要准备的:我们要把放置二进制字段设置为
Blob
类型,根据
文件
的大小选择合适的
Blob
类型,一下是各个
Blob
类型所能容纳二进制
文件
的大小
MySQL
的四种
BLOB
类型类型 大小(单位:字节) Tiny
Blob
最大 255
Blob
最大 65K Medium
Blob
最
然后我们先进行查询之后存到resultSet中,接着之后指定是哪一列为
Blob
类型的,通过
转换
变为String,存到text中。具体应用还是要根据业务场景判断。从Oracle中获取到
数据
之后存储到
Mysql
数据
库中,表中的字段都是差不多的,因为业务原因导致相同字段名类型不同。附上代码,写的比较糙,提供参考。
2 写入
数据
到
mysql
中的photo的medium
blob
字段中
(注意:由于是演示代码,里面的异常处理,和关闭资源都做了最简单的方式,开发中需要进行相应处理。)
(1)连接
数据
库代码
public static Connection getConnection() throws Exception {
Connection conn = null;
假如有个表core_player字段 items
sql:select hex(items)from core_player where id = 1
得到 一串 二进制,复制保存。
String user= "root";String password= "password";conn=DriverManager.getConnection(sourceURL, user, password);sql=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//注:“in...
把字段A的类型修改成bit类型,再读取时,获取的
Java
类型就是Boolean类型,这是怎么做到的呢?
数据
库驱动 从
数据
库服务 获取到
数据
流之后,也就是字节数组,会根据 字段的实际类型,从字节数组中 读取 指定的 字节数,将字节
转换
成对应的
Java
对象类型。读取某个字段的值时,首先会获取 对应字段的 Field 对象,该对象中定义了 当前字段的类型,根据不同的类型,使用不用的方式来读取
数据
。如果读取的字段想
转
成自己指定的类型,那么可以在获取字段
数据
时指定具体的期望
转换
的类型就可以了。
import com.atguigu1.util.JDBCUtils;
import org.apache.commons.dbutils.DbUtils;
import org.junit.Test;
import
java
.io.FileInputStream;
import
java
.io.IOException;
import
java
.sql.Connection;
import
java
.sql.Date;
import
java
.sql.PreparedStatement;
import ja
2010年07月22日 星期四 15:52
Blob
、InputStream、byte 互
转
收藏
在我们的程序开发当中,经常会用到
java
.sql.
Blob
、byte[]、InputStream
之间
的相互
转换
,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们
之间
互换的util.
一、byte[]=>
Blob
我们可以通过Hibernate提供的...