カラムをいちいち作ってもいいんだけど、割りとクラスの構成が面倒くさいのでBlob型で保存することにした。
という訳で、オブジェクトをByte配列に変換したり戻したりするメソッドを実装しますか。
Byte配列に変換
public byte[] toByte() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(this);
} catch (IOException e) {
// TODO: handle exception
return null;
}
return baos.toByteArray();
}
バイト配列から変換
public static Party byteToParty(byte[] b) {
Party p = null;
try {
p = (Party) new ObjectInputStream(new ByteArrayInputStream(b))
.readObject();
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (StreamCorruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return p;
}
JUnit使って動作確認。テストケースはこれで。
public void testToByte() {
byte[] b = party.toByte();
assertNotNull(b);
}
public void testByteToParty() {
byte[] b = party.toByte();
Party p = Party.byteToParty(b);
assertEquals(p.getDate(), date);
assertEquals(p.getTime(), time);
assertEquals(p.getPlace(), place);
assertEquals(p.getperson(), person);
assertEquals(p.getKeyword(), keyword);
assertEquals(p.getPlaceBy(), placeBy);
}
問題なくテストを通ったから良いでしょう。
0 件のコメント:
コメントを投稿