sos!!! 我要将一长串存成blob???~~^-^~~

netyao 2002-04-15 10:41:21
因为mysql不支持长串,所以要用blob字段
不知要用什么方法进行读取与操作???
只有insert
和select 操作???
...全文
37 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tehcon 2002-04-17
  • 打赏
  • 举报
回复
这样当然错啦,用
byte[] byte_array = new byte[instream.available()]试试
netyao 2002-04-17
  • 打赏
  • 举报
回复
rush2001() 非常感谢!
这回没错了,但是取InputStream 却出错
不知有什么好的方法把它取成串
我用的是
InputStream inStream = result.getBinaryStream(2);
byte[] byte_array=null;
inStream.read(byte_array);//出错
rush2001 2002-04-16
  • 打赏
  • 举报
回复
取的时候应该这样:
InputStream inStream = rs.getBinaryStream("x");
dennislee 2002-04-16
  • 打赏
  • 举报
回复
我在oracle上用过getBlob(),没有问题啊。
netyao 2002-04-16
  • 打赏
  • 举报
回复
我的数据库为mysql 我今天改用mm.mysql.jdbc-2.0pre5
用b=result.getBlob("bb");
提示为
org.gjt.mm.mysql.jdbc2.NotImplemented
at org.gjt.mm.mysql.jdbc2.ResultSet.getBlob(ResultSet.java:2084)
at _jsp._db._db1__jsp._jspService(_db1__jsp.java, Compiled Code)
at com.caucho.jsp.JavaPage.service(JavaPage.java:89)
at com.caucho.jsp.JavaPage.subservice(JavaPage.java:83)
at com.caucho.jsp.Page.service(Page.java:334)
at com.caucho.server.http.Invocation.service(Invocation.java, Compiled Code)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:201)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:217)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java, Compiled Code)
at com.caucho.server.TcpConnection.run(TcpConnection.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)

----------------------
用b=(Blob) result.getObject("bb");
提示和以前一样,造型错误

不知是不是mm.........
它不支持???
BugHunterPro 2002-04-15
  • 打赏
  • 举报
回复
String sSql = "INSERT INTO test(content) VALUES(?)";



stmt = conn.prepareStatement(sSql);



String content="你的内容";



byte[] pic = content.getBytes();







InputStreamReader bais = new InputStreamReader(new ByteArrayInputStream(pic));



stmt.setCharacterStream(1, bais, pic.length);



stmt.execute();
netyao 2002-04-15
  • 打赏
  • 举报
回复
Blob b=result.getBlob("bb");

java.lang.NullPointerException
at _jsp._db._db1__jsp._jspService(_db1__jsp.java, Compiled Code)
at com.caucho.jsp.JavaPage.service(JavaPage.java:89)
at com.caucho.jsp.JavaPage.subservice(JavaPage.java:83)
at com.caucho.jsp.Page.service(Page.java:334)
at com.caucho.server.http.Invocation.service(Invocation.java, Compiled Code)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java, Compiled Code)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java, Compiled Code)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java, Compiled Code)
at com.caucho.server.TcpConnection.run(TcpConnection.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)

------------
b=(Blob) (result.getObject("bb"));

java.lang.ClassCastException
at _jsp._db._db1__jsp._jspService(_db1__jsp.java, Compiled Code)
at com.caucho.jsp.JavaPage.service(JavaPage.java:89)
at com.caucho.jsp.JavaPage.subservice(JavaPage.java:83)
at com.caucho.jsp.Page.service(Page.java:334)
at com.caucho.server.http.Invocation.service(Invocation.java, Compiled Code)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:201)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java, Compiled Code)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java, Compiled Code)
at com.caucho.server.TcpConnection.run(TcpConnection.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)

netyao 2002-04-15
  • 打赏
  • 举报
回复
Blob 内容为串时 :insert 可以直接用insert 语句实现
那 select ???
jeffsonxl 2002-04-15
  • 打赏
  • 举报
回复
StatQueryBean query = new StatQueryBean();
query.setEnterpriseCode("sygs");
query.setBeginDate("2001/01/01");

ByteArrayOutputStream output = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(output);
out.writeObject(query);
byte[] by = output.toByteArray();
try{
Pre pre = new Pre();
String sql = "insert into xl_test values(?,?)";
pre.setPreStmt(sql);
pre.setBytes(1,by);
pre.setObject(2,"");
pre.update();

pre = new Pre();
sql = "select * from xl_test";
pre.setPreStmt(sql);
ResultSet rs = pre.searchForRs();
rs.next();
Blob blob = rs.getBlob(1);
InputStream input = blob.getBinaryStream();
ObjectInputStream in = new ObjectInputStream(input);
StatQueryBean query1 = (StatQueryBean)in.readObject();
pre.closePreStmt();
}catch(Exception e){
e.printStackTrace();
}
netyao 2002-04-15
  • 打赏
  • 举报
回复
从数据库中取出blob字段???

里面存的是个长串,
我用Blob b=result.getBlob("bb");
b=(Blob) (result.getObject("bb"));
都 不 可 以 ??? 错误提示见此页的第二个回复中

5~~~~~~~~~~~~5~~~~~~~~~~~~~~`

netyao 2002-04-15
  • 打赏
  • 举报
回复
Blob 内容为串时 :insert 可以直接用insert 语句实现
那 select 怎么做???

在我的第二个回复中,我写了 两个方法,但都提示错误!

请高手指点!!!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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