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;}}
阅读全文
0 0
- csv文件导入数据库工具类
- 把数据库数据 导入CSV 工具类
- csv文件导入数据库
- C# CSV文件导入数据库
- CSV文件导入Neo4j数据库
- csv文件导入oracle数据库
- csv文件导入mysql数据库
- CSV文件导入Neo4j数据库
- java导出和导入csv文件工具类
- CSV 文件分析与导入数据库
- 批量导入csv文件到数据库
- 导入csv文件到mysql数据库
- CSV 文件分析与导入数据库
- 大数据量csv文件导入数据库
- 各种数据库导入csv文件的方法
- 将csv文件导入到mysql数据库
- C# ASP.NET CSV文件导入数据库
- .csv文件导入到oracle数据库
- maven spring-boot 报Perhaps you are running on a JRE rather than a JDK?
- Eclipse 快速收起/展开方法结构快捷键设置
- cron表达式介绍
- Spring通过注释标签解决Ajax跨域访问以及Session失效的问题
- 浅谈 HotSpot 逃逸分析
- csv文件导入数据库工具类
- 自定义View中如何获得文本的宽和高
- OpenLDAP 概念与工作原理介绍
- 安装oracle数据库过程中,出现【INS-30014】无法检查指定的位置是否位于CFS上的解决办法
- 数字字符串转十六进制
- mysql-sql高级应用
- 共享内存
- <C/C++>指针在什么时候需要申请内存空间?
- C/C++基础题