[英]Export table from mysql with unicode into csv file via java
我需要通过mysql将具有unicode的MySQL表导出到csv文件中。 它可以在excel中正常导出,但不会显示unicode泰米尔字体。
数据库连接代码:
String db_dburl = "jdbc:mysql://"+Config.databaseip+":3306/"+Config.databasename;
String dburl_unicode = db_dburl.concat("?useUnicode=true&characterEncoding=utf-8");
Connection conn1 = DriverManager.getConnection(dburl_unicode, Config.databaseuname, Config.databasepwd);
原始数据:4 ACகலை-艺术文化AW A-奖项功能
您需要在运行时使用java选项指定文件编码。 例如,如果Tomcat Web服务器是您的运行时:将以下-Dfile.encoding =“ UTF-8”添加到参数中
或将环境变量JAVA_TOOL_OPTIONS设置为-Dfile.encoding =“ UTF-8”
首先包含以下.jar文件
您需要添加opencsv-2.3.jar
请参阅此代码。
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import au.com.bytecode.opencsv.CSVWriter;
public class WriteCSV {
public static void main(String[] args) {
try {
String connectionURL = "jdbc:mysql://localhost:3306/test";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(connectionURL, "root", "root");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select id_movie, movie_name from movies");
String csv = "E:\\dummyFolder\\output2.csv";
CSVWriter writer = new CSVWriter(new FileWriter(csv));
List<String[]> data = new ArrayList<String[]>();
while (rs.next())
{
data.add(new String[] { rs.getString(1), rs.getString(2) });
}
writer.writeAll(data);
System.out.println("CSV written successfully.");
writer.close();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.