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 String
Blob
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 Blob
String
et String
Blob
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