ArrayListをORACLEデータベースに書き込むためにArrayListをシリアル化しようとしました。JDBCとOracleでArrayListをシリアライズ
ArrayList<Long> lst2 = new ArrayList<Long>();
lst2.add((long) 5);
lst2.add((long) 5);
lst2.add((long) 7);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
new ObjectOutputStream(baos).writeObject(lst2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SQLスキームを次のように
create table T_2471785b1bf2475c9f292f73eeb
(
"CLEARTXTID" NUMBER(38,0),
"user" VARCHAR2(255),
"tag" VARCHAR2(255),
"object" NUMBER(19, 0),
"objectList" BLOB
, CONSTRAINT c_f2858bfc2a824579a630a934aea PRIMARY KEY ("CLEARTXTID" )
)
を私は次のJavaコードを使用挿入するために:私はserializedArraylist
で私のシリアル化されたのArrayListを置く方法がわからない
try
{
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection("jdbc:...:testdb",
"user", "password");
Statement statement = conn.createStatement();
int result = statement.executeUpdate("INSERT INTO T_2471785b1bf2475c9f292f73eeb VALUES(5, 'Trude', 'Trudscherl', 42, !!serializedArraylist!!);");
System.out.println("Eingefügte Datensätze: " + result);
statement.close();
conn.close();
}
catch(ClassNotFoundException e)
{
// ...
}
catch(SQLException e)
{
// ...
}
を。
"org.postgresql.Driver" oracle jdbcドライバを使用しないことをお勧めします。 – vickirk
注:ObjectOutputStreamは実際には素晴らしい選択ではありません。互換性を保つために、JSONまたはXMLでデータをシリアル化する方がよいです。 – Viruzzo