最近写了一个后台管理系统,由于需要的数据在两个数据库中。分别是一个外网可以访问的MySQL数据库和一个内网访问的Oracle。MySQL数据库中存放的是商户ID但不储存商户名称,而Oracle数据库中则有商户的详细信息。这种情况显然是无法通过多数据源的方式去分别连接数据库,因为涉及到不同项目,也没有单独在Oracle数据库对应的项目中增加获取商户信息接口的必要。好在Oracle数据库中的商户信息是写死的,基本上没有什么变动。所以就把商户信息导出为CSV文件,然后放入SpringBoot项目的resource文件夹下面,在关联商户信息的时候只需将CSV文件转换为List即可。
Csv2List
/**
* @Description 获取所有商户信息
*/
public static ArrayList<Object> obtainMerchantInfo(){
//获取所有商户信息(resource目录下商户文件)
String url = ResourceUtil.getResource("file/merchant_info.csv").toString();
String filePath = url.substring(url.indexOf(":") + 2);
ArrayList<Object> merchantList = new ArrayList<>();
CsvReader reader = CsvUtil.getReader();
//从文件中读取CSV数据
CsvData data = reader.read(FileUtil.file(filePath));
List<CsvRow> rows = data.getRows();
for (int i = 0; i < rows.size(); i++) {
//从原始商户表取指定行内容
List<String> rawList = rows.get(i).getRawList();
merchantList.add(rawList);
}
return merchantList;
}