সের্গিও:
আপনার BLOB ব্যবহার করা উচিত । এটি জেডিবিসি-র সাথে বেশ সোজা।
আপনার পোস্ট করা দ্বিতীয় কোডটির সমস্যা হ'ল এনকোডিং। এগুলির কোনওটিই ব্যর্থ না হয় তা নিশ্চিত করার জন্য আপনার অতিরিক্তভাবে বাইটগুলি এনকোড করা উচিত।
আপনি যদি এখনও এটি স্ট্রিংয়ে লিখতে চান তবে java.util.Base64 ব্যবহার করে বাইটগুলি এনকোড করতে পারেন ।
তবুও আপনার ডাটা টাইপ হিসাবে সিএলওবি ব্যবহার করা উচিত কারণ আপনি জানেন না যে সিরিয়ালযুক্ত ডেটা কতটা হতে চলেছে।
এটি কীভাবে ব্যবহার করবেন সে সম্পর্কে একটি নমুনা এখানে দেওয়া হল।
import java.util.*;
import java.io.*;
/**
* Usage sample serializing SomeClass instance
*/
public class ToStringSample {
public static void main( String [] args ) throws IOException,
ClassNotFoundException {
String string = toString( new SomeClass() );
System.out.println(" Encoded serialized version " );
System.out.println( string );
SomeClass some = ( SomeClass ) fromString( string );
System.out.println( "\n\nReconstituted object");
System.out.println( some );
}
/** Read the object from Base64 string. */
private static Object fromString( String s ) throws IOException ,
ClassNotFoundException {
byte [] data = Base64.getDecoder().decode( s );
ObjectInputStream ois = new ObjectInputStream(
new ByteArrayInputStream( data ) );
Object o = ois.readObject();
ois.close();
return o;
}
/** Write the object to a Base64 string. */
private static String toString( Serializable o ) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( o );
oos.close();
return Base64.getEncoder().encodeToString(baos.toByteArray());
}
}
/** Test subject. A very simple class. */
class SomeClass implements Serializable {
private final static long serialVersionUID = 1; // See Nick's comment below
int i = Integer.MAX_VALUE;
String s = "ABCDEFGHIJKLMNOP";
Double d = new Double( -1.0 );
public String toString(){
return "SomeClass instance says: Don't worry, "
+ "I'm healthy. Look, my data is i = " + i
+ ", s = " + s + ", d = " + d;
}
}
আউটপুট:
C:\samples>javac *.java
C:\samples>java ToStringSample
Encoded serialized version
rO0ABXNyAAlTb21lQ2xhc3MAAAAAAAAAAQIAA0kAAWlMAAFkdAASTGphdmEvbGFuZy9Eb3VibGU7T
AABc3QAEkxqYXZhL2xhbmcvU3RyaW5nO3hwf////3NyABBqYXZhLmxhbmcuRG91YmxlgLPCSilr+w
QCAAFEAAV2YWx1ZXhyABBqYXZhLmxhbmcuTnVtYmVyhqyVHQuU4IsCAAB4cL/wAAAAAAAAdAAQQUJ
DREVGR0hJSktMTU5PUA==
Reconstituted object
SomeClass instance says: Don't worry, I'm healthy. Look, my data is i = 2147483647, s = ABCDEFGHIJKLMNOP, d = -1.0
দ্রষ্টব্য : জাভা 7 এর জন্য এবং তার আগে আপনি এখানে মূল উত্তরটি দেখতে পাবেন