繁体   English   中英

通过java将带有unicode的mysql表导出到csv文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM