当前位置:编程学习 > JAVA >>

字符串如何存到数据库blob字段

字符串如何存到数据库blob字段 
 
字符串如何存到数据库blob字段?

我将字符串存放到blob字段出现乱码,请问如何解决?是否需要将字符串转换为二进制再存储,如何转换呢?


字符串如何存到数据库blob字段?
String.getBytes() 可以吗?
我们原来是做成fileinputstream然后set进去。


字符串如何存到数据库blob字段?
用String.getByte()写进去的也是乱码!


字符串如何存到数据库blob字段?
终于解决了,将文本字符串转换为8859-1编码就可以!


字符串如何存到数据库blob字段?
怎样存取图形呢?


字符串如何存到数据库blob字段?


这个是mysql下存取blob字段的一个很简单的类,跟据自己的需要改改就行了

[java] 
/**
* Title:         BlobPros.java
* Project:       test
* Description:  把图片存入mysql中的blob字段,并取出
* Call Module:  mtools数据库中的tmp表  
* File:         C:\downloads\luozsh.jpg
* Create Date:  2002.12.5
* @version 1.0 版本      
*
* 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(); 
                &nb

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,