J'essaie d'obtenir une chaîne de type de données BLOB en utilisant
Blob blob = rs.getBlob(cloumnName[i]);
byte[] bdata = blob.getBytes(1, (int) blob.length());
String s = new String(bdata);
Cela fonctionne bien, mais lorsque je vais convertir String
en Blob
et essayer d’insérer dans une base de données, rien ne s’insère 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 sur le point de convertir Blob
en String
et String
en Blob
en Java?
essayez ceci (a2 est 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();
cela peut fonctionner même sans BLOB, le pilote transformera automatiquement les types:
ps1.setBytes(1, str.getBytes);
ps1.setString(1, str);
De plus, si vous travaillez avec du texte, CLOB semble être un type de col plus naturel.
Utilisez ceci pour convertir String en Blob. Où connection 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);
Comment définissez-vous blob sur DB? Tu devrais 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();