gpt4 book ai didi

java - 将表从 Postgres 数据库(在服务器上)导出到 java 中的 csv 文件(在本地)

转载 作者:行者123 更新时间:2023-11-29 12:37:38 27 4
gpt4 key购买 nike

我想从数据库中导出一个表到 CSV 文件 在我的本地机器上。现在,我可以连接到数据库并显示 控制台中的所有元素都带有 System.out.println()。但是我 想要将这些元素重定向到 csv 文件中。请帮忙。

    //STEP 1. Import required packages
import java.sql.*;

public class ExportDataToCSV {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "org.postgresql.Driver";
static final String DB_URL = "jdbc:postgresql://[localhost]:54432/database";

// Database credentials
static final String USER = "login";
static final String PASS = "pwd";

public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("org.postgresql.Driver");

//STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);

//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, age, first, last FROM table";
ResultSet rs = stmt.executeQuery(sql);

//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
String id = rs.getString("id");
String age = rs.getString("age");
String first = rs.getString("first");
String last = rs.getString("age");

//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}

//STEP 5: Clean-up environment
rs.close();
stmt.close();
conn.close(); }catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace(); }catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace(); }finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try }//end try }//end main }//end FirstExample

最佳答案

使用 PgJDBC 的 CopyManager,它是从 PGConnection 中获得的您可以为 PgJDBC 连接转换 java.sql.Connection

如果您使用连接池,您可能需要了解如何解包代理 Connection 以获得真正的底层 PgJDBC Connection 对象。

CopyManager 支持COPY ... TO STDOUT,允许您将服务器生成的 CSV 数据流式传输到客户端应用程序。

关于java - 将表从 Postgres 数据库(在服务器上)导出到 java 中的 csv 文件(在本地),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24369864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com