Comment convertir Blob en chaîne de caractères et String en Blob en java

j'essaie d'obtenir la chaîne de caractères de BLOB datatype en utilisant

Blob blob = rs.getBlob(cloumnName[i]);
byte[] bdata = blob.getBytes(1, (int) blob.length());
String s = new String(bdata);

Il fonctionne très bien mais quand je vais pour convertir StringBlob et en essayant d'insérer dans la base de données puis rien insérant dans la base de données. J'ai utilisé le code ci-dessous pour convertir String en Blob:

String value = (s);
byte[] buff = value.getBytes();
Blob blob = new SerialBlob(buff);

quelqu'un Peut-il m'aider à propos de la conversion de BlobString et StringBlob en Java?

20
demandé sur BalusC 2013-07-01 12:48:53

3 réponses

essayez ceci (a2 BLOB col)

PreparedStatement ps1 = conn.prepareStatement("update t1 set a2=? where id=1");
Blob blob = conn.createBlob();
blob.setBytes(1, str.getBytes());
ps1.setBlob(1, blob);
ps1.executeUpdate();

il peut fonctionner même sans BLOB, le pilote transformera les types automatiquement:

   ps1.setBytes(1, str.getBytes);
   ps1.setString(1, str);

en outre si vous travaillez avec texte CLOB semble être un type de col plus naturel

7
répondu Evgeniy Dorofeev 2013-07-01 09:06:45

Utilisez ceci pour convertir la chaîne en Blob. Où connexion est la connexion à l'objet db.

    String strContent = s;
    byte[] byteConent = strContent.getBytes();
    Blob blob = connection.createBlob();//Where connection is the connection to db object. 
    blob.setBytes(1, byteContent);
1
répondu Ruchira Gayan Ranaweera 2013-07-01 08:58:26

comment paramétrez-vous blob sur DB? Vous devriez faire:

 //imagine u have a a prepared statement like:
 PreparedStatement ps = conn.prepareStatement("INSERT INTO table VALUES (?)");
 String blobString= "This is the string u want to convert to Blob";
oracle.sql.BLOB myBlob = oracle.sql.BLOB.createTemporary(conn, false,oracle.sql.BLOB.DURATION_SESSION);
 byte[] buff = blobString.getBytes();
 myBlob.putBytes(1,buff);
 ps.setBlob(1, myBlob);
 ps.executeUpdate();
0
répondu Optional 2013-07-01 08:53:51