先在資料庫中建立以下表格:
CREATE TABLE users (id INT, data jsonb);
程式碼:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.postgresql.util.PGobject;
public class NewClass {
public static void main(String[] args) throws SQLException {
try (Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/db_name", "user_name", "password");) {
// 插入
PGobject pgObj = new PGobject();
pgObj.setType("jsonb");
pgObj.setValue("{\"食物\":\"中餐\"}"); // 建議這裡用 org.json 或其他 Json 庫包起來
try (PreparedStatement ps = conn.prepareStatement("INSERT INTO users VALUES (1, ?);");) {
ps.setObject(1, pgObj);
ps.execute();
}
// 查詢 (取出整個 Json) , 可以用 org.json 或其他 Json 庫來讀取
try (PreparedStatement ps = conn.prepareStatement("SELECT * FROM users;");
ResultSet rs = ps.executeQuery();) {
while (rs.next()) {
System.out.println("Query : " + rs.getInt("id") + " , " + rs.getString("data"));
}
}
System.out.println("------------------------");
// 查詢 (取出部分 Json) , 可以用 org.json 或其他 Json 庫來讀取
try (PreparedStatement ps = conn.prepareStatement("SELECT data#>>'{食物}' FROM users;");
ResultSet rs = ps.executeQuery();) {
while (rs.next()) {
System.out.println("Query : " + rs.getString(1));
}
}
}
}
}
執行結果:
Query : 1 , {"食物": "中餐"}
------------------------
Query : 中餐
留言列表