java oracle 图片_java向oracle中存图片

最近开始进入java,上手就碰到这个问题,在csdn上研究了两天终于全部调试成功,现在帖出来希望对象我一样的新手有点帮助

图片存入数据库:

package processmanage;

import java.sql.*;

import java.io.*;

class savefile

{

public static  void

main(String[]  args)

{

try

{

Class.forName(

"com.microsoft.jdbc.sqlserver.SQLServerDriver ");

Connection  conn

=  DriverManager.getConnection(

"jdbc:microsoft:sqlserver://JAYQIAN:1433;DataBaseName=CMM;User=jay;Password=jay

");

File

file  =  new

File( "E:\\test.jpg ");

int  length

=  (int)  file.length();

InputStream

input  =  new  FileInputStream(file);

java.sql.PreparedStatement

preStmt  =  conn.prepareStatement(

"INSERT  INTO  mytest  (myname,myfile)

VALUES(?,?) ");

preStmt.setString(1,

"qianwy1 ");

preStmt.setBinaryStream(2,

input,  length);

preStmt.execute();

}

catch (Exception  ex)

{

ex.printStackTrace();

}

}

}

这是最简单的将一个服务器上的图片存入数据库,如果您调试这个class可以成功的话,修改放到jsp里也没什么问题.但是如果是客户端的话先要上传文件到服务器,然后

在存到数据库中,上传文件smartupload我就不说了

显示图片的servlet

package processmanage;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import java.sql.*;

public class  getphoto

extends  HttpServlet

{

private static  final

String  CONTENT_TYPE

=  "image/jpeg

";

public void  init()

throws  ServletException

{

}

public void  doGet(HttpServletRequest  request,

HttpServletResponse  response)

throws  ServletException,

IOException  {

//在数据库中照片的ID

String PHOTOID  =

null;

try {

PHOTOID =  request.getParameter( "photoid ");

}

catch(Exception e)  {

e.printStackTrace();

}

ResultSet RS_photo  =

null;

try

{

Class.forName(

"com.microsoft.jdbc.sqlserver.SQLServerDriver ");

Connection conn  =

DriverManager.getConnection(

"jdbc:microsoft:sqlserver://yangxf:1433;DataBaseName=CMM;User=sa;Password=

");

String sQuery  =

"SELECT  photo

FROM  employee

WHERE  id=?

";

PreparedStatement pstmt=null;

pstmt =  conn.prepareStatement(sQuery);

pstmt.setString(1, PHOTOID);

RS_photo =  pstmt.executeQuery();

}catch (Exception  e){

//throw e;

}

//用来存储照片数据的缓冲区

byte []  buf=null;

//扩展名可以从数据库得到,这里直接指定为JPEG

String photoname= "jpeg ";

try{

//根据ID查找照片

//将图片数据读入缓冲区

if (RS_photo.next()){

buf =  RS_photo.getBytes(1);

}else

{

buf =  new

byte[0];

}

}catch (Exception  e){

//throw e;

}

//finally {

//connMgr.freeConnection(

"comdb ",  conn);

//}

//response.setContentType(CONTENT_TYPE);

//告诉浏览器输出的是图片

response.setContentType( "image/

"+photoname);

//图片输出的输出流

OutputStream out  =

response.getOutputStream();

//将缓冲区的输入输出到页面

out.write(buf);

//输入完毕,清楚缓冲

out.flush();

}

public void  destroy()

{

}

}

根据photoid显示相应的图片,您可以直接servlet/getphoto?photoid=XXX测试是否能用

放到jsp里显示图片

p><p><%=%E5%8F%82%E6%95%B0%>%20

以上都是最简单的代码,调试成功后再慢慢合成到您的系统中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值