conn = this.getConnection();
conn.setAutoCommit(false);
java.sql.Statement st = conn.createStatement();
String sql1 = "insert into test_image(test_id,image) values ("123",empty_blob)";
String stl2 = "select image from test_image where test_id='"+test.getId()+"' for update";
ResultSet rs = st.executeQuery(stl2);
OutputStream outStream = null;
if (rs.next())
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("image");
outStream = blob.getBinaryOutputStream();
utStream.write(byte[],0, byte[].length);
outStream.flush();
outStream.close();
conn.commit();
conn.close();
byte[]形式的图片存入数据库中,对应字段为blob。。。。 try{ conn = this.getConnection(); conn.setAutoCommit(false); java.sql.Statement st = con
基本形式为:
sql
="
insert
into 你要插入的表名 (field1,field2,..fieldi..fieldn)values(‘value1’,‘value2’,...,:fieldi,....‘valuen’)";
其中“:fieldi”为你要插入
blob
对应的字段名。字段名和参数名一致(ParameterName)
Oracle
Command cmd = new Oracl
示例代码如下:
byte
[]
byteArray
= ...;
InputStream inputStream = new
ByteArray
InputStream(
byteArray
);
Blob
blob
= new Serial
Blob
(
byteArray
);
要注意的是在使用Serial
Blob
时,需要引入j...
I当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们之间互换的util.
一、
byte
[]=>
Blob
我们可以通过Hibernate提供的表态方法来实现如:
org.hibernate.Hibernate.Hibernate.create
Blob
(new
byte
[1024]);
二、
Blob
=>
byte
[]
目前没有找到好一点的API提供,所以只能自已来实现。示例如下:
* 把
Blob
类型
转
换为
byte
数组类型
* @param
blob
Java中有八种基本数据类型,除boolean外,其他七种可进行相互
转
换。根据不同数据类型的优先关系:
低---------------------------------------------------------->高
byte
,short,char->int->long->float->double
数据之间的
转
换分为两种:自动(隐式)
转
换和强制(显式)
转
换。
// 将Bitmap对象
转
换为字节数组
ByteArray
OutputStream stream = new
ByteArray
OutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte
[]
byteArray
= stream.to
ByteArray
();
// 将字节数组存储到
数据库
中
ContentValues cv = new ContentValues();
cv.put("
image
",
byteArray
);
db.
insert
("tableName",
null
, cv);
在这个示例中,`bitmap`是要存储的Bitmap对象,`db`是
SQL
ite
数据库
的实例,`tableName`是要存储数据的表名,`
image
`是存储Bitmap数据的列名。
当从
数据库
中读取Bitmap数据时,可以将字节数组
转
换为Bitmap对象。以下是一个简单的示例代码:
// 从
数据库
中读取字节数组
byte
[]
byteArray
= cursor.get
Blob
(cursor.getColumnIndex("
image
"));
// 将字节数组
转
换为Bitmap对象
Bitmap bitmap = BitmapFactory.decode
ByteArray
(
byteArray
, 0,
byteArray
.length);
在这个示例中,`cursor`是一个查询结果的游标对象,`
image
`是存储Bitmap数据的列名。