用java代码写一个链接mysql读取数据,以csv的格式自定义文件名发送到ftp服务器上的代码
时间: 2023-03-21 15:00:20 浏览: 159
以下是使用Java代码连接MySQL数据库读取数据,并将数据以CSV格式自定义文件名发送到FTP服务器的示例代码:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public class MysqlToFtp {
public static void main(String[] args) throws SQLException, IOException {
// MySQL数据库连接信息
String url = "jdbc:mysql://localhost:3306/database_name";
String user = "username";
String password = "password";
// FTP服务器连接信息
String ftpHost = "ftp.example.com";
int ftpPort = 21;
String ftpUser = "ftp_username";
String ftpPassword = "ftp_password";
String ftpFilePath = "/ftp/directory/path/";
// 数据库查询语句
String query = "SELECT * FROM table_name";
// 文件名和文件路径
String filename = "data.csv";
String filepath = "C:\\output\\" + filename;
// 连接MySQL数据库
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
// 将数据写入CSV文件
FileWriter fw = new FileWriter(filepath);
PrintWriter pw = new PrintWriter(fw);
while (rs.next()) {
pw.print(rs.getInt("column1"));
pw.print(",");
pw.print(rs.getString("column2"));
pw.print(",");
pw.println(rs.getDouble("column3"));
}
pw.flush();
pw.close();
fw.close();
// 连接FTP服务器并上传文件
FTPClient ftp = new FTPClient();
ftp.connect(ftpHost, ftpPort);
ftp.login(ftpUser, ftpPassword);
ftp.enterLocalPassiveMode();
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.storeFile(ftpFilePath + filename, new FileInputStream(filepath));
ftp.disconnect();
}
}
```
请注意,您需要将代码中的数据库连接信息、FTP服务器连接信息、查询语句、文件名和文件路径替换为您自己的值。另外,您需要在代码中引入Apache Commons Net库,以便使用FTP客户端。
阅读全文