数据源为Excel的解决方法

本文介绍了如何在项目中将数据源从Excel改为内嵌式数据库,通过sqlite3建立数据库,使用Apache POI读取Excel数据,并通过SpringJdbcTemplate批量插入数据库。详细步骤包括数据库设置、Excel读取、数据清理与插入,以及客户端Excel上传。
摘要由CSDN通过智能技术生成

        上次做项目时要求数据源改为Excel,与项目一起打包执行。查了一下数据源是否可以直接使用Excel的解决方案,虽然有提供可以连接Excel的驱动,但是以Excel直接操作数据实在是不方便,没有数据库的功能强大,因此想到了使用了内嵌式数据库,再编写一段上传Excel把数据更新到数据库的代码,即可同样达到数据源与项目打包的效果。

一、解决思路

要求:数据源为Excel,与项目一起打包

方法:使用内嵌式数据库,后台处理上传Excel数据至数据库

内嵌式数据库就是不需要像Mysql/Oracle一样安装启动服务,而是在项目中直接引用它的jar包即可,它会以文件的形式存在于数据库中。在此项目中我使用了sqlite3。

上传Excel数据至数据库这一块我使用了fileUpload和poi,前者是用于上传文件,后者用于从Excel中读取数据;数据库连接我采用了SpringJdbcTemplate。好啦,以下是详细的步骤。

二、详细步骤

1、安装内置数据库sqlite3

1)首先从官网下载,我是在Windows下开发的,虽然后续是在linux环境下运行,但是sqlite3它可以自己跨平台,所以我直接下载windows版本就好了。

2)解压,然后创建一个sqlite3类型的文件,在命令提示符中使用sqlite3 DatabaseName.db的命令即可在当前目录下创建一个sqlite3类型的数据库

3)你可以用Navicat等可视化工具连接数据库,也可以把数据库直接复制到项目中,然后在applicationContext配置文件中配置连接信息即可。我这里采用了C3P0连接池。如果是放在resources下面,URL可以像我这样写,另外sqlite3的所使用的驱动是org.sqlite.JDBC。用户名和密码可以不使用。

测试一下,可发现数据库能够正常连接

2、Excel读取数据并写入数据库

poi提供了Excel读取的了解决方案,有一点要注意的是,分为HSSF和XSSF,其中HSSF是针对的office2007之前的版本xls,而XSSF针对的是office2007以后的版本xlsx,我这里采用的是XSSF。

思路:上传文件存放至临时地点——读取Excel数据封装成List——清空数据库之前的数据——插入数据到数据库

读取Excel数据封装成List,主要思想就是遍历每个sheet,再在每个sheet中遍历行,取列值,每行封装成一个对象,每个sheet又封装成一个list,批量插入数据库,下面直接上代码。

读取Excel.java

public class UploadExcel {
    public static List<Ammeter> readXlsx(String path) throws Exception {
        List<Ammeter> list = new ArrayList<Ammeter>();
        InputStream is = new FileInputStream(path);
        XSSFWorkboo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值