admin 发布的文章

Java之BigDecimal详解

float和double类型的主要设计目标是为了科学计算和工程计算。
他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。
然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。

但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。
在很多编程语言中,浮点数类型float和double运算会丢失精度。

在大多数情况下,计算的结果是准确的,float和double只能用来做科学计算或者是工程计算,在银行、帐户、计费等领域,BigDecimal提供了精确的数值计算

BigDecimal

https://zhuanlan.zhihu.com/p/349734516

SpringBoot读取Resource下文件
最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传;这里待下载模板位置为resource/excelTemplate/test.xlsx,尝试了四种读取方式,并且测试了四种读取方式分别的windows开发环境下(IDE中)读取和生产环境(linux下jar包运行读取)


- 阅读剩余部分 -

需求:单个Excel文件读取

 public class  FileTest{
    
        public static void main(String[] args) throws SQLException {
    
        ExcelReader reader = ExcelUtil.getReader("/file.xlsx");
        List<List<Object>> readAll = reader.read();

        System.out.println(readAll.toString());
    
        }

}

需求: 本地有部分文件需要导入数据库

多文件文件存储位置: D盘

直接上代码:

public class  FileTest{

    public static void main(String[] args) throws SQLException {

        File f = new File("D://temp/result/week");
        for(File temp : f.listFiles()) {
            if(temp.isFile()) {
                System.out.println(temp.getName());
                ExcelReader  reader2= ExcelUtil.getReader(temp, 0);
                List<Map<String,Object>> readAll2 = reader2.readAll();
                for(Map<String,Object> map:readAll2){

                   Db.use().insert(
                            Entity.create("table")
                                    .set("date_week", map.get("date"))
                                   
                    );
                }
            }
        }


    }

    public static void readCsv(String[] args) throws SQLException, ParseException {
        CsvReader reader = CsvUtil.getReader();
        //从文件中读取CSV数据
        CsvData data = reader.read(FileUtil.file("D://temp/2022.csv"));
        List<CsvRow> rows = data.getRows();
        int numbers=rows.size();
        for (int i=1;i<numbers;i++) {
            CsvRow csvRow=rows.get(i);

            Db.use().insert(
                    Entity.create("table")
                            .set("year",csvRow.getRawList().get(0))
                            .set("month", csvRow.getRawList().get(0))
                           
            );
        }

    }


}

文件上传导入