InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("jdbc/user1DS");
Connection conn = ds.getConnection();
String sql="insert into product (p_name,p_id,p_image,p_describe)"+"values(?,?,?,?)";
FileInputStream fs=new FileInputStream(request.getParameter("p_image"));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte byteBuffer[]=new byte[1024];
int byteCounter;
while((byteCounter=fs.read(byteBuffer))!=-1){
bos.write(byteBuffer,0,byteCounter);
}
byteBuffer=bos.toByteArray();
PreparedStatement pst1 = conn.prepareStatement(sql);
pst1.setString(1, request.getParameter("p_name"));
pst1.setString(2, request.getParameter("p_id"));
pst1.setBytes(3,byteBuffer);
pst1.setString(4, request.getParameter("p_describe"));
boolean flag=pst1.execute();
if(flag==true)
System.out.println("上传成功");
else
System.out.println("上传失败");
我想用servlet和oracle来实现把商品的信息存入数据库,但是图片不能存入,望大侠们帮一下忙哈,p_name,p_id,p_image,p_describe这个是数据库字段,还有我设置p_image的类型为blob
DataSource ds = (DataSource)ic.lookup("jdbc/user1DS");
Connection conn = ds.getConnection();
String sql="insert into product (p_name,p_id,p_image,p_describe)"+"values(?,?,?,?)";
FileInputStream fs=new FileInputStream(request.getParameter("p_image"));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte byteBuffer[]=new byte[1024];
int byteCounter;
while((byteCounter=fs.read(byteBuffer))!=-1){
bos.write(byteBuffer,0,byteCounter);
}
byteBuffer=bos.toByteArray();
PreparedStatement pst1 = conn.prepareStatement(sql);
pst1.setString(1, request.getParameter("p_name"));
pst1.setString(2, request.getParameter("p_id"));
pst1.setBytes(3,byteBuffer);
pst1.setString(4, request.getParameter("p_describe"));
boolean flag=pst1.execute();
if(flag==true)
System.out.println("上传成功");
else
System.out.println("上传失败");
我想用servlet和oracle来实现把商品的信息存入数据库,但是图片不能存入,望大侠们帮一下忙哈,p_name,p_id,p_image,p_describe这个是数据库字段,还有我设置p_image的类型为blob
解决方案 »
- SpringAOP应用在哪方面?它的作用是什么?
- 新手依然问些简单问题
- jsp中向SQL SERVER2000插入数据的问题?分不高。。但请高手们不要吝惜。
- 关于获取记录总数的方法!!!不是小白问题
- 求助:<table width="1300" border="0" cellpadding="0" cellspacing="0">如何在页面内部传值
- jsp连接access, 得到connection但是查询不出结果来,请高手给解释一下
- 高手请教~~
- 如何用JSP开发出带标签页、伸缩控制面板等多种功能的界面??
- jsp+javaBean中Column 'ordersPrice' specified twice的错误
- 怎样获得地址栏URL。用JSP,在线等,试通就给分!!
- 如果我想点Jsp页面上的一个按钮,就把表格(table)以.xls文件的格式在新窗口显示出来。如何做!在线等。。!急求!
- servlet为什么不能运行?
http://hi.baidu.com/%C2%ED%D3%C0/blog/item/5a00b218cb0ef60535fa412f.html
使用Hibernate做持久化Img img = new Img();
img.setPic( Hibernate.createBlob(new FileInputStream("c:\\pic.jpg")) );
session.save( img );Hibernate.createBlob()方法会返回一个Blob类型的对象----------还是建议 jdbc方式存储图片
http://topic.csdn.net/t/20021225/09/1297093.html
1 启动事务
2 insert EMPTY_BLOB 初始化BLOB字段数据
3 select for update 更新
PreparedStatement ps = null;
Statement sm = con.createStatement();
ps = con.prepareStatement("create table mkblob(id number(6) primary key,blobdata Blob)");
ps.executeUpdate();
ps = con.prepareStatement("insert into mkblob values(?,empty_blob())");
ps.setInt(1, 100001);
ps.executeUpdate(); // 读回来再把文件写进去
ps = con.prepareStatement("select blobdata from mkblob where id=100001 for update");
rs = ps.executeQuery();
if (rs.next())
blob = rs.getBlob(1);
File files = new File("workEnglish.exe");
FileInputStream fis = new FileInputStream(files);
// 取得输入文件的大小
System.out.println("file size=" + fis.available() / 1024 + "kb");
// 从第一个位置开始写入对象
OutputStream os = blob.setBinaryStream(0);
byte[] data = new byte[(int) fis.available()];
fis.read(data);
os.write(data);
fis.close();
os.close();