Har ett problem rörande att spara en array till en databas av typen MysQL.
MySQL stödjer ej 'setArray' därför måste jag göra om arrayen på något sätt.
Någon med erfarenhet av php pratade om att man kunde använda serizalize.
Dock har jag inte en aning om detta är en bra lösning, eller hur en sådan kodsnutt skulle se ut. Någon idé?
Tja, du kan ju lagra den som en BLOB/CLOB i databasen, men jag avråder. Det vore en snyggare lösning att i stället göra en till tabell där du sparade varje element för sig i en post, du kan du även söka i den tabellen utan problem. Om du ska serialisera använder du Object{In,Out}putStream.
Du får koppla det till något annat än en fil, lämpligen en PipedInputStream. Nåt sånt här (helt otestat och förmodligen felaktigt):
PipedInputStream in = new PipedInputStream();
ObjectOutputStream out = new ObjectOutputStream(new PipedOutputStream(in));
out.writeObject(arr);
out.close();
PreparedStatement ps = conn.prepareStatement("INSERT INTO tabell (arrayKolumn) VALUES (?)");
ps.setBinaryStream(1, in);
Hm, då blir det nog enklare att koppla objektströmmen till en ByteArrayOutputStream som man sedan gör toByteArray() på för att sedan använda PreparedStatement.setBytes().
I stället för att plocka fram bytesen med getBytes, använd getBinaryStream som du sedan kopplar en ObjectInputStream till, sedan är (borde) det bara vara att anropa readObject och vips, har du din array igen.