不能插入BLOB字段

dabinzeng 2003-12-30 05:47:08
问题是这样的,我要将一些图片文件存放到数据库的BLOB字段中,当时我发现当图片过小时会插不进数据库,BLOB字段为空,这是什么原因呢?
...全文
91 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dabinzeng 2004-01-04
  • 打赏
  • 举报
回复
兄台,你的回答不对头啊。问题我自己解决了,是写数据库的输出流忘关了。为了奖励的你的参与精神,给你奖励50分,哈哈!
fuzhan820 2003-12-30
  • 打赏
  • 举报
回复
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.io.*"%>
<html>
<body>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@10.0.5.36:1521:ycrz2";
Connection con=DriverManager.getConnection(url,"rsgl","rsgl");
//插入数据库
//String sql="insert into test_img values (?,?,?)";
//获取传值ID
String id=request.getParameter("id");
//获取image的路径
String kk=request.getParameter("image");
//转换成file格式
File filename=new File(kk);
//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改
FileInputStream str=new FileInputStream(filename);
String sql="insert into img(id,name,pic) values('"+id+"',?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setBinaryStream(2,str,str.available());
pstmt.execute();
out.println("Success,You Have Insert an Image Successfully");
%>
dabinzeng 2003-12-30
  • 打赏
  • 举报
回复
程序如下:
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.100.13:1521:develop", "gzedu", "gzedu8756");
conn.setAutoCommit(false);
/* 插入一个空的CLOB对象 */
stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO movie1 (MovieID, MovieName, MoviePicture) VALUES ('1', '1', EMPTY_BLOB())");

/* 查询此CLOB对象并锁定 */
rs = stmt.executeQuery(
"SELECT MoviePicture FROM movie1 WHERE MovieID='1' FOR UPDATE");
if (rs.next()) {
/* 取出此CLOB对象 */
BLOB blob = (BLOB) rs.getBlob("MoviePicture");

/* 向BLOB对象中写入数据 */
BufferedOutputStream out = new BufferedOutputStream(blob.
getBinaryOutputStream());
BufferedInputStream in = new BufferedInputStream(new FileInputStream("screen.bmp"));
int c;
while ( (c = in.read()) != -1) {
out.write(c);
}
in.close();
out.close();

}

/* 正式提交 */
conn.commit();

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧