使用JDBC截断Postgresql JSON数据

时间:2017-03-12 04:09:54

标签: java postgresql jdbc

我正在开发一个应用程序,在某一点上,让java代码调用postgres存储过程(返回一串JSON)。

create or replace function get_nsx_all() returns text as
$$
begin
    return array_to_json(array_agg("nguoi.nhaSanXuat")) from "nguoi.nhaSanXuat";
end
$$
LANGUAGE 'plpgsql';

该函数正确执行并在pgAdmin中返回: enter image description here

但是,当我通过JDBC使用它来调用函数时:

public static void getAllNSX() throws SQLException
{
    connection = DB.getConnection();

    CallableStatement statement = connection.prepareCall("{ ? = call get_nsx_all() }");

    statement.registerOutParameter(1, Types.VARCHAR);
    statement.execute();

    String x  = statement.getString(1);

    System.out.println(x);
}

我只得到了这个:

enter image description here

我想知道我做错了什么,如何将完整的JSON字符串添加到我的应用程序中。

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明Postgresql没有任何问题,但由于我将所有字符串的数据类型设置为字符(255),这是一个255字符的固定大小的字符串,所有尾随空格都是255减去字符串长度。

感谢Laurenz,Andreas的投入。