POI导入:将excel中的数据批量添加到数据库表中

😊 @ 作者: 瓶盖子io

💖 @ 主页: 瓶盖子io-CSDN博客

//前端upload上传组件
<el-upload
                action="/brand/batchBrand"
                :on-success="handleAvatarSuccess"
                >
            <el-button>导入</el-button>
        </el-upload>

action,跳转到后端地址,在这个请求路径下执行导入逻辑


:on-success对应的method

handleAvatarSuccess(res) {
    this.$message.success(res);
    //this.pageSize=20;
    //this.selectAll();
},

//注释的可写可不写



//导入
    @PostMapping("/batchBrand")
    public String batchBrand(MultipartFile file) throws IOException{
        //创建工作薄对象(读用户上传上来的文件)
        Workbook workbook=new HSSFWorkbook(file.getInputStream());
        //定义一个集合用来存储数据
        List<Brand> list=new ArrayList<>();
        //获取表对象
        Sheet sheet = workbook.getSheetAt(0);
        //获取表中最后一行的行号
        int lastRowNum = sheet.getLastRowNum();
        //把表里每一行数据都拿到
        for (int i = 1; i <= lastRowNum; i++) {
            //通过表对象调用方法获取行对象
            Row row = sheet.getRow(i);
            //获取行上的每个单元格中的文本值
            int id = (int) row.getCell(0).getNumericCellValue();
            String bname = row.getCell(1).getStringCellValue();
            String company = row.getCell(2).getStringCellValue();
            int stort = (int) row.getCell(3).getNumericCellValue();
            int status = (int) row.getCell(4).getNumericCellValue();
            int aid = (int) row.getCell(5).getNumericCellValue();
            //将数据赋值给brand
            Brand brand=new Brand(id,bname,company,stort,status,aid);
            //将赋值后的学生对象添加到list中
            list.add(brand);
        }
        //关闭资源
        workbook.close();
        //把数据放到表里
        brandService.saveBatch(list);
        return "批量添加成功,OK";
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
您可以使用以下步骤来使用 MyBatis 代码批量导入 Excel 数据数据库: 1. 创建一个 POJO 类来表示 Excel 表格的每一行数据。 2. 使用 Apache POI 库来读取 Excel 文件并将数据存储到 POJO 对象。 3. 创建一个 MyBatis Mapper 接口和对应的 XML 文件,用于将 POJO 对象插入到数据库。 4. 在 Mapper 接口定义一个批量插入的方法,使用 MyBatis 提供的批量操作 API 批量插入数据。 5. 在代码调用批量插入方法,将读取到的 Excel 数据批量插入到数据库。 以下是一个示例代码: // 定义 POJO 类 public class ExcelData { private String name; private int age; // 省略 getter 和 setter 方法 } // 使用 Apache POI 读取 Excel 文件 List<ExcelData> dataList = new ArrayList<>(); Workbook workbook = WorkbookFactory.create(new File("data.xlsx")); Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { ExcelData data = new ExcelData(); data.setName(row.getCell(0).getStringCellValue()); data.setAge((int) row.getCell(1).getNumericCellValue()); dataList.add(data); } // 定义 MyBatis Mapper 接口和 XML 文件 public interface ExcelDataMapper { void insertBatch(List<ExcelData> dataList); } <!-- ExcelDataMapper.xml --> <mapper namespace="com.example.mapper.ExcelDataMapper"> <insert id="insertBatch" parameterType="java.util.List"> INSERT INTO excel_data (name, age) VALUES <foreach collection="list" item="item" separator=","> (#{item.name}, #{item.age}) </foreach> </insert> </mapper> // 调用批量插入方法 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream); try (SqlSession session = sessionFactory.openSession(ExecutorType.BATCH)) { ExcelDataMapper mapper = session.getMapper(ExcelDataMapper.class); mapper.insertBatch(dataList); session.commit(); }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓶盖子io

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值