【问题标题】:insert json data into postgres database using java program使用java程序将json数据插入postgres数据库
【发布时间】:2021-10-31 14:01:29
【问题描述】:

我正在寻求使用 java 程序将 json 数据插入 postgres 表的帮助。我尝试使用以下代码,但找不到任何数据插入到表中。我在编程方面的经验很少。有人可以帮助我修改我的程序以使其正常工作吗?

这是我的代码。

enter code here  stmt = c.createStatement();
        String sql = "CREATE TABLE jason " +
                "(ID INT      NOT NULL," +
                " NAME           json    NOT NULL)";
        stmt.executeUpdate(sql); //updates the table
       //json data----------------
        String[] MESSAGE = {"{\"customer_name\": \"John\", \"items\": { \"description\": \"milk\", \"quantity\": 4 } }"};

        sql = "INSERT INTO jason (ID,NAME) "
                + "VALUES (1,::MESSAGE );";
        stmt.executeUpdate(sql);

【问题讨论】:

    标签: java sql json postgresql insert


    【解决方案1】:

    这里的语法有问题,请阅读此说明:https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html

    应该是:

    PreparedStatement pstmt = con.prepareStatement("INSERT INTO jason (ID,NAME) VALUES (1, ?1);");
    pstmt.setString(1, yourJsonString)
    

    【讨论】:

    • 普通 JDBC 使用 ? 作为占位符,不是 ?1(在您发布的链接中明确说明)
    【解决方案2】:

    要在语句中使用参数,需要使用prepared statement:

    java.sql.PreparedStatement stmt = conn.prepareStatement("INSERT INTO jason (ID,NAME) VALUES (1,?)" );
    stmt.setString(1, "{\"customer_name\": \"John\", \"items\": { \"description\": \"milk\", \"quantity\": 4 } }");
    stmt.executeUpdate();
    

    【讨论】:

    • 谢谢大家。准备好的声明事情起作用了。
    猜你喜欢
    • 1970-01-01
    • 2020-11-07
    • 2021-07-19
    • 2020-09-03
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多