sql >> データベース >  >> RDS >> PostgreSQL

JavaのpreparedStatementを使用してJSONオブジェクトをPostgresに挿入するにはどうすればよいですか?

    この動作は、SQLコマンドでリテラル文字列として使用するとJSON文字列が問題なく受け入れられるため、非常に煩わしいものです。

    postgresドライバーのGithubリポジトリには、これに関する問題がすでにあります(問題がサーバー側の処理にあると思われる場合でも)。

    SQL文字列でキャスト(@ a_horse_with_no_nameの回答を参照)を使用することに加えて、問題の作成者は2つの追加の解決策を提供します。

    1. パラメータを使用するstringtype=unspecified JDBC接続のURL/オプション。

    これにより、すべてのテキストまたはvarcharパラメータが実際には不明なタイプであることがPostgreSQLに通知され、それらのタイプをより自由に推測できるようになります。

    1. パラメータをorg.postgresql.util.PGobjectでラップします :

     PGobject jsonObject = new PGobject();
     jsonObject.setType("json");
     jsonObject.setValue(yourJsonString);
     pstmt.setObject(11, jsonObject);
    


    1. T-SQLを使用してリンクサーバー上にデータベースを作成する2つの方法

    2. PostgresはHerokuProductionDBをローカル開発DBにコピーします

    3. 接続が悪くなったときにJBoss接続プールをOracleに再接続する方法はありますか?

    4. PHP / MySQLは行を挿入し、「id」を取得します