存储过程将图片存入数据库.doc
文本预览下载声明
写一个存储过程,将图片存入数据库中
基本情况介绍:
数据库版本:oracle 11g
数据库用户:scott
数据库密码:tiger
JDK:1.6
要导入的图片:D:\picture\1.jpg
--创建存储图片的表
CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL);
--创建存储图片的目录
CREATE OR REPLACE DIRECTORY IMAGES AS D:\picture;
存储过程如下:
CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS
F_LOB BFILE;--文件类型
B_LOB BLOB;
BEGIN
iNSERT INTO IMAGE_LOB (T_ID, T_IMAGE)
VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;
--插入空的blob
F_LOB:= BFILENAME (IMAGES, FILENAME);
--获取指定目录下的文件
DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONLY);
--以只读的方式打开文件
DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB));
--传递对象
DBMS_LOB.FILECLOSE (F_LOB);
--关闭原始文件
COMMIT;
END;
--将该图片存入表
call IMG_INSERT(1,1.gif);
验证一下是否已存入:
从数据库读取图片并显示在页面上
项目名称为ShowPhoto
启动Tomcat,在浏览器输入:http://localhost:8080/ShowPhoto/,显示如下:
显示全部