Oracle中的Bloc字段的措置较其他字段来说,会有一些非凡性。现就对在java和pl/sql下,Blob字段的措置和巨匠做一些交流。 下面,简单介绍一下Blob在以下两种情形中的写入措置,
4 y" }4 b) G2 F1 [! t# C; m u java情形
- b- \& z# U( X( p6 L3 K u PL/SQL情形
t* U; w7 s7 E! K) F y 一、java情形
2 j0 i* g" G& H9 |; F- x8 U+ A: v1 p 1、 Blob的插入操作/ t1 {3 v. [# z& y
1) 插入一空的Blob。9 d& }( ^# J! h. s
2) 更新该记载的Blob。" y# Q- T6 C* e8 R+ E
例子:, e0 n# N6 x3 x! Z( C& S
好比表结构如下:
4 t- ~' r9 J/ N4 [; N# | CREATE TABLE Student (
0 |$ B5 b/ f: f" M! t+ i Name VARCHAR2(30),
: e, O5 I w* c: N; o Age Int,5 @% a8 m6 F8 P' G7 _
Picture Blob);7 T. j" R1 U# `
i.插入一空的Blob。
+ `6 M7 [ s8 _3 }7 n# U. a! V String command=”INSERT INTO Student VALUES(?,?,?)”;! U8 a6 _. B, e" @5 P: L
Connection conn=null;& O% e" x, d+ _& H- S/ @
PreparedStatement ps=null;' {; Z8 ?3 M: a
try
0 {9 W4 p7 z" Q! e {, Q8 n5 E; W [6 i
conn=….;5 q% B3 Y6 y7 ?7 A! G
ps=conn. prepareStatement(command);
; I& i' Z( L; G' U$ E ps.setString(1,”ZhangSan”);7 H/ O8 p1 ~9 L: \4 d4 u
ps.setInt(2,20);0 Z/ m- `! y) w" y) T5 ~
ps.setBlob(3, BLOB.empty_lob());. e2 {7 U6 p. B- N
ps.executeUpdate();
6 n. Y7 o- ~3 w4 X" X …; Q8 w8 z, q3 _, G; Q4 C; N
ii.更新该记载: S/ t( o! a, I, ^* `1 Q: [
…3 m1 V6 w. k" w/ O
byte[] data=null;
# h3 }2 q% V d9 A Connection conn=null;
2 u ]2 T% F9 A Try
0 a, P9 J1 o# E) i: k: ~% j6 f0 D {7 T1 i% E, e" L2 `
data=图片信息
; Z% s# x5 }: Z5 g/ ~% L) A1 Q" B( E conn=.." l$ U% z. z3 s) L8 J7 `+ W/ m
ByteArrayInputStream in=new ByteArrayInputStream(data);$ _' }6 L) ~% H
updateBlob(in, conn, “Student”,”Picture”,”Name”,”zhangsan”);
3 o/ v# U7 G; E6 N8 ] …
3 I+ q7 W& L3 p6 y' t … |