Querying a PostgreSQL Database in Java
Miller Trujillo
Staff Software Engineer


String sql = "INSERT INTO covers (book_id, image) VALUES (?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(sql); FileInputStream fis = new FileInputStream("cover.png")) {pstmt.setInt(1, 101);pstmt.setBinaryStream(2, fis);pstmt.executeUpdate();}
INSERT - adds new rows to a tablesetBinaryStream() - streams binary data to a BLOB columnString sql = "INSERT INTO manuscripts (book_id, content) VALUES (?, ?)"; try (PreparedStatement pstmt = conn.prepareStatement(sql);FileReader reader = new FileReader("manuscript.txt")) {pstmt.setInt(1, 101);pstmt.setCharacterStream(2, reader);pstmt.executeUpdate();}
setCharacterStream() - streams text data to a CLOB column
getBinaryStream() returns an InputStreamgetCharacterStream() returns a ReaderString sql = "SELECT image FROM covers WHERE book_id = ?"; try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setInt(1, 101); try (ResultSet rs = pstmt.executeQuery()) {if (rs.next()) {try (InputStream is = rs.getBinaryStream("image");FileOutputStream fos = new FileOutputStream("out.png")){is.transferTo(fos);} } } }
String sql = "SELECT content FROM manuscripts"; try (PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery()) {while (rs.next()) {try (Reader reader = rs.getCharacterStream("content")) {char[] cb = new char[30];reader.read(cb); // Chars from 0 to 29reader.read(cb); // Chars from 30 to 59: } } }
setBinaryStream(), getBinaryStream(), setCharacterStream())$$
$$

Querying a PostgreSQL Database in Java