Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert Blob to String and String to Blob in java

Tags:

I'm trying to get string from BLOB datatype by using

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

It is working fine but when I'm going to convert String to Blob and trying to insert into database then nothing inserting into database. I've used below code for converting String to Blob:

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

Can anyone help me about to converting of Blob to String and String to Blob in Java?

like image 363
Suzon Avatar asked Jul 01 '13 08:07

Suzon


People also ask

How do you convert a BLOB to a string?

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

How do I convert BLOB data to readable format?

If you want to update the BLOB datatype column to the TEXT datatype column. Follow these steps: Alter the table and add a column having data type TEXT. Add content to that column after converting BLOB data to TEXT date.

What is BLOB in Java?

A BLOB (binary large object) is a varying-length binary string that can be up to 2,147,483,647 characters long. Like other binary types, BLOB strings are not associated with a code page. In addition, BLOB strings do not hold character data.

How do you convert bytes to blobs?

At first, I have created an object of Scanner class and read my file using FileReader() method. Then created a BLOB object initialized with null. Next, I have Converted the file into a Byte array ( byte[] ), stored it into my_byte_array. Finally converted the byte array into BLOB using SerialBlob() method.


2 Answers

try this (a2 is 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(); 

it may work even without BLOB, driver will transform types automatically:

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

Besides if you work with text CLOB seems to be a more natural col type

like image 75
Evgeniy Dorofeev Avatar answered Sep 19 '22 08:09

Evgeniy Dorofeev


Use this to convert String to Blob. Where connection is the connection to db object.

    String strContent = s;     byte[] byteConent = strContent.getBytes();     Blob blob = connection.createBlob();//Where connection is the connection to db object.      blob.setBytes(1, byteContent); 
like image 39
Ruchira Gayan Ranaweera Avatar answered Sep 18 '22 08:09

Ruchira Gayan Ranaweera