csv文件导入数据库工具类

来源:互联网 发布:聊天软件市场分析 编辑:程序博客网 时间:2024/06/11 10:01

首先导入javacsv.jar

<dependency>
            <groupId>net.sourceforge.javacsv</groupId>
            <artifactId>javacsv</artifactId>
            <version>2.0</version>
        </dependency>


public class CsvUtil {private static final Logger logger = Logger.getLogger(CsvUtil.class.getName());public static List<CsvInfo> csvUtil(String fileName, InputStream inputStream) {List<CsvInfo> csvList=new ArrayList<>();CsvInfo csv = null;int exccseNum=0;int erryNum=0;int allNum=0;CsvReader r;try {                        //在这里你可以使用数据流或者文件路径,因为我是导入,所以使用的流                       r = new CsvReader(inputStream, ',', Charset.forName("UTF-8"));if(r==null){throw new Exception("~~~~~~~~~you give me a null");}// 读取表头r.readHeaders();// 逐条读取记录,直至读完while (r.readRecord()) {                                //因为要求是#隔开的算俩条,所以使用split解析为数组                               String adId = r.get(0);String[] asIds = adId.split("#");String bomId = r.get(1);String[] bomIds = bomId.split("#");String adName = r.get(2);String[] asNames = adName.split("#");String bomName = r.get(3);String[] bomNames = bomName.split("#");if (asIds.length > 1 && asNames.length > 1 && bomIds.length > 0 && bomNames.length > 0) {for (int i = 0; i < asIds.length; i++) {csv = newCsvInfo(asIds[i], asNames[i], bomIds[0], bomNames[0]);csvList.add(csv);exccseNum++;allNum++;}} else if (asIds.length > 0 && asNames.length > 0 && bomIds.length > 1 && bomNames.length > 1) {for (int i = 0; i < bomIds.length; i++) {csv = newCsvInfo(asIds[0], asNames[0], bomIds[i], bomNames[i]);csvList.add(csv);exccseNum++;allNum++;}} else if (asIds.length == 1 && asNames.length == 1 && bomIds.length == 1 && bomNames.length == 1) {csv = newCsvInfo(asIds[0], asNames[0], bomIds[0], bomNames[0]);csvList.add(csv);exccseNum++;allNum++;}else {erryNum++;allNum++;continue;}}logger.info("~~~~~~~总共导入次数="+allNum+"~~~~~~成功导入次数="+exccseNum+"~~~~~~失败导入次数="+erryNum);r.close();} catch (Exception e) {logger.error("导入失败", e);} finally {return csvList;  }}private static CsvInfo newCsvInfo(String dsmDeptId, String dsmDeptName, String ssoDeptId, String ssoDeptName) {CsvInfo csv = new CsvInfo();csv.setDsmDeptId(dsmDeptId);csv.setDsmDeptName(dsmDeptName);csv.setSsoDeptId(ssoDeptId);csv.setSsoDeptName(ssoDeptName);return csv;}}


原创粉丝点击