错误设置java String []到postgres准备好的语句

Vol*_*ron 3 java postgresql jdbc

我正在尝试将一个字符串数组插入Postgres.我从Postgres得到了一个无效的类型错误.

public static void main(String[] args) throws SQLException {
    String[] skus = { "0514", "0414", "0314", "0214", "0114", "1213", "1113", "1013", "0913", "0813", "0713", "0613" };
    String sqlString = "Insert into dbo.Inventory_Metrics skus values(?)";
    Connection conn = DriverManager.getConnection(getPostgresConnUrl());
    PreparedStatement ps = conn.prepareStatement(sqlString);

    //THIS NEXT LINE THROWS AN ERROR

    ps.setObject(1, skus, java.sql.Types.NVARCHAR, skus.length);
    int status = ps.executeUpdate();
    ps.close();

    System.out.print(status);
}
public static String getPostgresConnUrl() {
    String database = "mycode";
    String userName = "xxxxxxxx";
    String password = "xxxxxxxx";
    return "jdbc:postgresql://192.168.0.50:5432/" + database + "?user=" + userName + "&password=" + password;

}
Run Code Online (Sandbox Code Playgroud)

Cra*_*ger 6

根据文档,您必须使用JDBC阵列API.

你不能只是setObjectJDBC中的数组.如果这是它的工作方式会很好,但事实并非如此.你应该特别处理数组.

Array jdbcSkus = con.createArrayOf("VARCHAR", skus);
pstmt.setArray(2, jdbcSkus);
Run Code Online (Sandbox Code Playgroud)