在 Java 中查詢 PostgreSQL 資料庫
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-將新列加入資料表setBinaryStream()-將位元資料串流寫入 BLOB 欄位String 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()-將文字資料串流寫入 CLOB 欄位
getBinaryStream() 會回傳 InputStreamgetCharacterStream() 會回傳 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())$$
$$

在 Java 中查詢 PostgreSQL 資料庫