JAVA读取Oracle中的blob图片字段并显示
近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库读取blob字段数据,对图片byte数据进行缩放等;特此记录,给自己备忘,给大家参考。
整个流程分为四步,连接oracle数据库->读取blob图片字段->对图片进行缩放->把图片展示在jsp页面上。
下面进行详细描述:
1.java连接Oracle
注:数据库是Oracle10g版本为10.2.0,在数据库中,图片字段类型为BLOB。
java中通常使用的是通过jdbc驱动来连接数据库,oracle也不例外,因此必须下载一个Oracle驱动的jdbc需要去网上进行下载,名称为ojdbc14.jar。
下载地址为:
下载了驱动之后,可以使用驱动里提供的接口进行连接,具体代码如下:
importjava.sql.*;
importjava.io.*;
importjavax.imageio.ImageIO;
importjava.awt.image.BufferedImage;
importjava.awt.image.AffineTransformOp;
importjava.awt.geom.AffineTransform;
publicclassOracleQueryBean {
privatefinalStringoracleDriverName="oracle.jdbc.driver.OracleDriver";
privateConnectionmyConnection=null;
/*图片表名*/
privateStringstrTabName;
/*图片ID字段名*/
privateStringstrIDName;
/*图片字段名*/
privateStringstrImgName;
/**
*加载java连接Oracle的jdbc驱动
*/
publicOracleQueryBean(){
try{
Class.forName(oracleDriverName);
}catch(ClassNotFoundException ex){
System.out.println("加载jdbc驱动失败,原因:"+ ex.getMessage());
}
}
/**
*获取Oracle连接对象
*@returnConnection
*/
publicConnection getConnection(){
try{
//用户名+密码;以下使用的Test就是Oracle里的表空间
//从配置文件中读取数据库信息
GetPara
oGetPara =newGetPara();
String
strIP = oGetPara.getPara("serverip");
String
strPort = oGetPara.getPara("port");
String
strDBName = oGetPara.getPara("dbname");
String
strUser = oGetPara.getPara("user");
String
strPassword = oGetPara.getPara("password");
this.strTabName=
oGetPara.getPara("tablename");
this.strIDName=
oGetPara.getPara("imgidname");
this.strImgName=
oGetPara.getPara("imgname");
String
oracleUrlToConnect ="jdbc:oracle:thin:@"+strIP+":"+strPort+":"+strDBName;
this.myConnection= DriverManager.getConnection(oracleUrlToConnect,
strUser, strPassword);
}catch(Exception ex){
System.o