再oracle中怎么将Blob类型查出来,oracle中如何取出BLOB类型的值

下面是一段JSP代码

String image_id ="1";

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

String url="jdbc:oracle:thin:@172.18.16.68:1521:rz817";

//orcl为你的数据库的SID

String user="hr_system";

String password="manager";

Connection conn= DriverManager.getConnection(url,user,password);

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM tfile WHERE id = " + image_id);

java.io.File fileout=new java.io.File("e:/img.jpg");

FileOutputStream op = new FileOutputStream(fileout);

int length = 0;

if (rs.next()){

String dim_image = rs.getString("filename");

BLOB blocco = (BLOB)rs.getObject("info");

length = (int)blocco.length();

byte [] byte_array  = blocco.getBytes(1, length);

for(int i=0;i

{

op.write(byte_array[i]);

}

/*

for(int i=0;i

op.write(blocco[i]);

}

*/

}

op.close() ;

rs.close();

stmt.close();

conn.close();

%>

此处可取出BLOB的值,如果想让JSP直接显示出图片,用以下的代码:

ClientLanMuAccess Access=new ClientLanMuAccess();

int data_num=Access.GetReportMaxID(request.getParameter("FileID"));

int intpage = 1;

String FileID=request.getParameter("FileID");

if (request.getParameter("page") != null)

intpage = Integer.parseInt(request.getParameter("page"));

Connection conn=null;

ResultSet rs=null;

PreparedStatement ps=null;

try

{

conn = new CommonAccess().createConnection();

//ps =conn.prepareStatement( "Select Report_Img from WEB_Report Where Report_ID="+intpage+" and LIEBIAO_ID="+FileID+" ");

ps =conn.prepareStatement( "select report_img from web_report where liebiao_id=15 and report_id=37");

rs = ps.executeQuery();

if (rs != null)

{

System.out.println("sa1");

while (rs.next())

{

System.out.println("sa2");

ServletOutputStream sout = response.getOutputStream();

response.setContentType("image/jpeg");

InputStream in = rs.getBinaryStream(1);

byte b[] = new byte[0x7a120];

for(int i = in.read(b); i != -1;)

{

sout.write(b);

in.read(b);

}

in.close();

sout.flush();

sout.close();

}

rs.close();

}

ps.close();

}

catch (SQLException e)

{

e.printStackTrace();

}

finally

{

try

{

System.out.println("err_test_sam!222");

if (rs != null)

rs.close();

if (ps != null)

ps.close();

if (conn != null)

conn.close();

}

catch (Exception e)

{

System.out.println("err_test_sam!000");

}

}

%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值