Search Postgresql Archives

Re: Inserting JSON via Java PreparedStatment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/07/2016 05:25 AM, Curt Huffman wrote:
Hello!

I’m struggling to insert a JSON object into my postgres v9.4 DB. I have
defined the column called "evtjson" as type json. (not jsonb)
I am trying to use a prepared statement in Java (jdk1.8) to insert a
Json object (built using JEE javax.json libraries) into the column, but
I keep running into SQLException errors.

I'm using JDBC 9.4.1208

I create the JSON object using:

|JsonObjectmbrLogRec =Json.createObjectBuilder().build();…mbrLogRec
=Json.createObjectBuilder().add("New MbrID",newId).build();|

Then I pass this object as a parameter to another method to write it to
the DB using a prepared statement. (along with several other fields) As:

|pStmt.setObject(11,dtlRec);|

You lost me here, I thought the object you are building is mbrLogRec?


Using this method, I receive the following error:

    at org.postgresql.util.PSQLException: No hstore extension installed.

    at
    org.postgresql.jdbc.PgPreparedStatement.setMap(PgPreparedStatement.java:553)


    at
    org.postgresql.jdbc.PgPreparedStatement.setObject(PgPreparedStatement.java:1036)

I did try installing the hstore extension, but it then told me that it
was not an hstore object.

I have also tried:

|pStmt.setString(11,dtlRec.toString());pStmt.setObject(11,dtlRec.toString());|

Which produce a different error:

    Event JSON: {"New MbrID":29}

    SQLException: ERROR: column "evtjson" is of type json but expression
    is of type character varying

    Hint: You will need to rewrite or cast the expression.

But, at least this tells me that the DB is recognizing the column as
type JSON.

OracleDocs shows a number of various methods to set the parameter value
in the preparedStatement, but I'd rather not try them all if someone
knows the answer.
(http://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html)
These also reference an additional parameter, SQLType, but I can't find
any refernce to these.
Should I try setAsciiStream? CharacterStream? CLOB? ???

I couldn't find any help or tutes on postgres or the web.

Thanks for any help.

-Curt



--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux