PostgreSQLのbyteaカラムに手動でデータを入れる
初期データ用にbyteaデータを入れようと調べてみたが、psqlからのINSERTはできない?
仕方なくJDBCで放り込むことにした。(その時点で既に手動ではないが)
Chapter 7. Storing Binary Data
Class.forName("org.postgresql.Driver"); Connection con = DriverManager.getConnection("jdbc:postgresql://dbhost:5432/test", "test", "test"); File file = new File("C:/image.png"); FileInputStream fis = new FileInputStream(file); PreparedStatement ps = con.prepareStatement("INSERT INTO binary_tbl (value) VALUES (?)"); ps.setBinaryStream(1, fis, (int)file.length()); ps.executeUpdate(); ps.close(); fis.close(); con.close();
JDBCなんて使うの数年前に研修で教えて以来だわ。
余談だけど、今時の開発者の中にはJDBC学ばずに、O/Rとかライブラリ使うしか分からない人もいたりするのかなぁ。