性能解决:
因为程序需要频繁向数据库插入数据,为了减少数据库的负荷量,我们选择用统一生成文件的方式。通过文件向数据库导入数据。
版本: postgresql\9.4-1201-jdbc41\postgresql-9.4-1201-jdbc41.jar
代码如下:
// 获取连接
Connection con = dataSource.getConnection();
// 启用事物
con.setAutoCommit(true);
// 和创建数据库名字顺序一致,我们生成的文件是CSV类型,以CSV方式导入
StringBuilder copyIn = new StringBuilder();
copyIn.append("COPY ");
copyIn.append("DBname");
copyIn.append("(");
copyIn.append("xxxx,");
copyIn.append("xxxx,");
copyIn.append("xxxx,");
copyIn.append("xxxx");
copyIn.append(") ");
copyIn.append("FROM STDIN (FORMAT csv)");
try (InputStream fileInputStream = new FileInputStream(inputdto.FilePath)){
// 转换pgsql连接
PGConnection copyConnection = con.unwrap(PGConnection.class);
CopyManager copyManager = copyConnection.getCopyAPI();
copyManager.copyIn(copyIn.toString(),new InputStreamReader(fileInputStream,
SPB0001_BusinessConst.UTF_8));
}