mysql 表的blob字段的 内容如何进行编辑
直接在navcat工具里没有办法看 和编辑 , 导出数据到excel里是可以看到的。
问mysql 表的blob字段的 内容如何进行编辑

解决方案 »

  1.   

    现在我的不是图片 希望有人指导
    参考如下 
    此实现为用java访问mysql的blob,对图片进行存取  /**  * Title: BlobPros.java  * Project: test  * Description: 把图片存入mysql中的blob字段,并取出  * Call Module: mtools数据库中的tmp表  * File: C:downloadsluozsh.jpg  * Copyright: Copyright (c) 2003-2003  * Company: uniware  * Create Date: 2002.12.5  * @Author: ChenQH  * @version 1.0 版本*  *  * Revision history  * Name Date Description  * ---- ---- -----------  * Chenqh 2003.12.5 对图片进行存取  *  * note: 要把数据库中的Blob字段设为longblob  *  */  //package com.uniware;  import java.io.*;  import java.util.*;  import java.sql.*;  public class BlobPros  {  private static final String URL = "jdbc:mysql://10.144.123.63:3306/mtools?user=wind&password=123&useUnicode=true";  private Connection conn = null;  private PreparedStatement pstmt = null;  private ResultSet rs = null;  private File file = null;  public BlobPros()  {  }  /**  * 向数据库中插入一个新的BLOB对象(图片)  * @param infile 要输入的数据文件  * @throws java.lang.Exception  */  public void blobInsert(String infile) throws Exception  {  FileInputStream fis = null;  try  {  Class.forName("org.gjt.mm.mysql.Driver").newInstance();  conn = DriverManager.getConnection(URL);  file = new File(infile);  fis = new FileInputStream(file);  //InputStream fis = new FileInputStream(infile);  pstmt = conn.prepareStatement("insert into tmp(descs,pic) values(?,?)");  pstmt.setString(1,file.getName()); //把传过来的第一个参数设为文件名  //pstmt.setBinaryStream(2,fis,(int)file.length()); //这种方法原理上会丢数据,因为file.length()返回的是long型  pstmt.setBinaryStream(2,fis,fis.available()); //第二个参数为文件的内容  pstmt.executeUpdate();  }  catch(Exception ex)  {  System.out.println("[blobInsert error : ]" + ex.toString());  }  finally  {  //关闭所打开的对像//  pstmt.close();  fis.close();  conn.close();  }  }  /**  * 从数据库中读出BLOB对象  * @param outfile 输出的数据文件  * @param picID 要取的图片在数据库中的ID  * @throws java.lang.Exception  */  public void blobRead(String outfile,int picID) throws Exception  {  FileOutputStream fos = null;  InputStream is = null;  byte[] Buffer = new byte[4096];  try  {  Class.forName("org.gjt.mm.mysql.Driver").newInstance();  conn = DriverManager.getConnection(URL);  pstmt = conn.prepareStatement("select pic from tmp where id=?");  pstmt.setInt(1,picID); //传入要取的图片的ID  rs = pstmt.executeQuery();  rs.next();  file = new File(outfile);  if(!file.exists())  {  file.createNewFile(); //如果文件不存在,则创建  }  fos = new FileOutputStream(file);  is = rs.getBinaryStream("pic");  int size = 0;  /* while(size != -1)  {  size = is.read(Buffer); //从数据库中一段一段的读出数据  //System.out.println(size);  if(size != -1) //-1表示读到了文件末  fos.write(Buffer,0,size);  } */  while((size = is.read(Buffer)) != -1)  {  //System.out.println(size);  fos.write(Buffer,0,size);  }  }  catch(Exception e)  {  System.out.println("[OutPutFile error : ]" + e.getMessage());  }  finally  {  //关闭用到的资源  fos.close();  rs.close();  pstmt.close();  conn.close();  }  }  public static void main(String[] args)  {  try  {  BlobPros blob = new BlobPros();  //blob.blobInsert("C:Downloadsluozsh1.jpg");  blob.blobRead("c:/downloads/1.jpg",47);  }  catch(Exception e)  {  System.out.println("[Main func error: ]" + e.getMessage());  }  }  }
      

  2.   

    你的blob里不是图片
    那有多大的数据量呢?
    我这里的一般 用text型,就足够满足需求了
      

  3.   

    问题不是我设计(如果是我 绝对不用这个blob)blob里全部是文本  问我该如何去修改这个blob字段的内容???(急切)
      

  4.   

    用程序?还是sql?
    最恨的就是这种给人擦屁股的事了,同情你
      

  5.   

    http://streamfly.javaeye.com/blog/63000http://space.itpub.net/16555225/viewspace-487360
      

  6.   

    直接用 update 不行吗?