社区
Web 开发
帖子详情
豁出去了,把分全给你们了,给点回答吧?
pingju
2002-04-15 03:08:16
我想把一个图象文件,插入到oracle的blob型字段里,然后再读出来,显示,怎么做?
能不能给个完全好使的历程?
...全文
132
11
打赏
收藏
豁出去了,把分全给你们了,给点回答吧?
我想把一个图象文件,插入到oracle的blob型字段里,然后再读出来,显示,怎么做? 能不能给个完全好使的历程?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jimjxr
2002-04-16
打赏
举报
回复
看下Oracle JDBC手册,第7章讲了怎么写blob,第20章有完整例子。
pingju
2002-04-16
打赏
举报
回复
关注
pingju
2002-04-16
打赏
举报
回复
kuai guan zhu a
pingju
2002-04-16
打赏
举报
回复
哥们,你这方法不行啊,
lRs.updateBinaryStream("pic",outstream,bAtt.length);不行,中间的参数应该是inputstream型的,而我的程序里没有inputstream啊!
kkhui
2002-04-16
打赏
举报
回复
你用的jdbc是?
pingju
2002-04-16
打赏
举报
回复
原风不动的copy执行,还是不行,
dengmj
2002-04-16
打赏
举报
回复
Write file into DB as Large Object.
> String query = null;
> int length = 0;
> Connection connM = null;
> byte[] byteArray = null;
> try {
> File file = new File(filename);
> FileInputStream fis = new FileInputStream(file);
> int c = fis.available();
> byteArray = new byte[c];
> int get = fis.read(byteArray);
> fis.close();
> length = byteArray.length;
> System.out.println("c= " +c +" get= " +get +" byteArray.length= "
+length);
>
> connM = DriverManager.getConnection(url, account, password);
> connM.setAutoCommit(false);
> InputStream bis = new ByteArrayInputStream(byteArray);
> query = "INSERT INTO tests (imgname, imgoid) VALUES ('" +filename +"',
?);";
> PreparedStatement ps = connM.prepareStatement(query);
> ps.setBinaryStream(1, bis, length);
> int result = ps.executeUpdate();
> connM.commit();
> ps.close();
> bis.close();
> System.out.println("filename= " +filename +" file.length= " +length +"
> result= " +result);
> } catch(SQLException sql) {
> sql.printStackTrace();
> } catch(FileNotFoundException fnf) {
> fnf.printStackTrace();
> } catch(IOException ioe) {
> ioe.printStackTrace();
> } finally {
> try {
> connM.setAutoCommit(true);
> } catch (Exception againse) {
> System.out.print("write Exception again at setAutoCommit(true)");
> System.exit(1);
> }
> }
>
全能的帅巨人
2002-04-15
打赏
举报
回复
在ResultSet中的确没有updateBlob方法。但有updateBinaryStream方法。
我建议你把语句
lRs.updateBlob("pic",blob);
更改为
lRs.updateBinaryStream("pic",outstream,bAtt.length);
试试。
有问题你可以看看JDK的API。
http://java.sun.com/products/jdk/1.2/docs/api/index.html
pingju
2002-04-15
打赏
举报
回复
块关注阿
pingju
2002-04-15
打赏
举报
回复
谢谢,你的方法我试了,在插入时候报错,说没找到lRs.updateBlob("pic",blob);
Found 1 errors in JSP file:
C:\\Program Files\\Allaire\\JRun\\servers\\default\\default-app\\market\\test.jsp:33: Error: No method named "updateBlob" was found in type "java/sql/ResultSet".
我的源文件是
<%@ page language="java" import="java.sql.*,oracle.jdbc.*,oracle.jdbc2.*,oracle.sql.*,java.io.*" %>
<%
java.sql.Connection lConn = null;
java.sql.Statement lStat = null;
java.sql.ResultSet lRs = null;
try
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//DBConnectionManager lDB = DBConnectionManager.getInstance();
//lConn = lDB.getConnection("ORACLE");
lConn = DriverManager.getConnection("java:oracle:thin:@srv:1521:srv","yp","yp");
lStat = lConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//lStat.executeUpdate("insert id,EMPTY_BLOB() from tab where id=2");
lStat.executeUpdate("INSERT INTO my_blob_table VALUES ('2', empty_blob())");
lRs = lStat.executeQuery("select pic from my_blob_table where id='2'");
if(lRs.next())
{
oracle.sql.BLOB blob = (oracle.sql.BLOB)lRs.getBlob("pic");
OutputStream outstream = blob.getBinaryOutputStream();
byte[] bAtt = "data".getBytes();
outstream.write(bAtt,0,bAtt.length);
outstream.close();
lRs.updateBlob("pic",blob);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try{lRs.close();}catch(Exception e){}
try{lStat.close();}catch(Exception e){}
try{lConn.close();}catch(Exception e){}
}
//rs.updateBlob("C",blob);
%>
dengmj
2002-04-15
打赏
举报
回复
如何保存图片到数据库
java.sql.Connection lConn = null;
java.sql.Statement lStat = null;
java.sql.ResultSet lRs = null;
try
{
DBConnectionManager lDB = DBConnectionManager.getInstance();
lConn = lDB.getConnection("ORACLE");
lStat = lConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
lStat.executeUpdate("insert id,EMPTY_BLOB() from tab where id=2");
lRs = lStat.executeQuery("select pic from tab where id=2");
if(lRs.next())
{
oracle.sql.BLOB blob = (oracle.sql.BLOB)lRs.getBlob("pic");
OutputStream outstream = blob.getBinaryOutputStream();
byte[] bAtt = "data".getBytes();
outstream.write(bAtt,0,bAtt.length);
outstream.close();
lRs.updateBlob("pic",blob);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try{lRs.close();}catch(Exception e){}
try{lStat.close();}catch(Exception e){}
try{lConn.close();}catch(Exception e){}
}
读出数据库再显示
<%@ page language="java" import="java.sql.*,java.util.*"%>
<%
String image_id = (String) request.getParameter("ID");
if (image_id != null){
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@www.myCompany.com:1243:myInstance","java","java");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM IMMAGINE WHERE IMMAGINE_ID = " + image_id);
if (rs.next())
{
String dim_image = rs.getString("IMMAGINE_DIMENSIONE");
byte [] blocco = rs.getBytes("IMMAGINE_IMMAGINE");
response.setContentType("image/jpeg");
ServletOutputStream op = response.getOutputStream();
for(int i=0;i<Integer.parseInt(dim_image);i++)
{
op.write(blocco[i]);
}
}
rs.close();
stmt.close();
con.close();
} catch(Exception e) {
out.println("An error occurs : " + e.toString());
}
}
%>
阿里腾讯“互撕”升级,双方都
豁出去
了
近日,互联网两大巨头阿里和腾讯开始了一场高管亲自上阵的口水战,真可谓赤膊相见。12月21日,阿里云创学院首期班正式开班,阿里巴巴合伙人、阿里巴巴集团公关委员会主席王帅在
回答
学员提问时表示,腾讯说半条命给了合作伙伴,但腾讯整条命却都是小学生给的。 王帅称,在一个不发达的国家,每个人都有大把的时间,时间成本越不值钱的国家,游戏就会越赚钱。前两天香港有家媒体,说某位官员玩王者荣耀,不结束就不开会。连这
知乎66条高赞
回答
,句句醍醐灌顶!
—上班的人往往以上班、下班为时间概念,妻子通常以丈夫回家为时间概念,旅行者通常以小时为时间概念,如果身处陌生环境,身边坐着一个陌生又讨人厌的人,会以秒为时间概念。遵从你内心的热情,多和朋友一起,学会失败,接受自己成为自然的人,简化生活,有规律地锻炼、睡眠、慷慨、勇敢、表达感激。判断我们是否进步,要看我们是否有提问的勇气以及解答问题的深度,还有我们对真相的接纳,而非那些让人感觉良好的东西。合伙的本质是风险共担,讲究的是放心。接受父母是平庸的人,接受自己是平庸的人,接受配偶是平庸的人,接受孩子是平庸的人。
第一章 设计模式故事会之楔子:面试还在
回答
策略、工厂?该升级设计模式库了!
在面试官的连环追问下,小A败下阵来,意识到自己的不足,想学设计模式,那些概念有看着让人头疼。那小A发现的博客能否让他理解设计模式,且听下回分解!!!
抖音康辉机器人_新闻联播主持康辉玩抖音,卖萌耍宝样样精通,观众为其
点
赞...
新闻联播主持康辉玩抖音,卖萌耍宝样样精通,观众为其
点
赞说起新闻联播这一档电视节目,相信没有人会陌生,作为我国新闻类栏目的领头羊,这么多年来在每天中午的十二
点
准时开播!几乎可以说是风雨无阻!而作为代表我们国家形象的一档新闻栏目,其主持人的影响可以说是至关重要的!毕竟是顶着我们国家的颜面这等头等大事。所以我们每每在电视机前看到的新闻联播的主持人们不管是在报道什么样的新闻时都是一脸正经表情严肃的模样。似...
记一次失败的面试,烽火高级java
最近在找工作,各种面试应接不暇,今天的烽火科技的面试让我心情十分沉重,做个记录,也当做是个总结。 先说一下鄙人的基本情况,去年年底辞职,之后一直休息,过上了梦寐中的猪一样的生活,几个月下来,越发觉得这种“漫”节奏的生活十分无趣,所以决定还是继续找份工作。 鄙人从事Java开发7年,做的工作也是所谓的“全栈工程师”(小公司一般都是一个人扮演好几个人的角色,不是么?)。 头天晚上接到Hr的电话,安排第二天早上9
点
或者11
点
开始线上面试(具体时间呢得看情况),面试岗位为Java高级。 面试早上9
点
准时开始
Web 开发
81,108
社区成员
341,721
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章