"将Excel数据上传到数据库以及将数据库数据下载到Excel" 在Java开发中,经常需要处理Excel数据与数据库之间的交互。这个场景通常出现在数据导入导出、数据分析或者批量处理等任务中。这里提到的两个Java类`ExcelToDB`和`DBToExcel`分别实现了从Excel到数据库的数据上传和从数据库到Excel的数据下载功能。 首先,我们来看`ExcelToDB`类。这个类的主要任务是读取Excel文件中的数据并将其保存到数据库中。它依赖于`LocationEntity`对象来存储Excel中的每一行数据,并利用`DBHelper`类来执行SQL操作。`ExcelToDB`类的`main`方法是整个过程的入口: 1. `List<LocationEntity> listExcel = Service.getAllByExcel("");`:这行代码调用了一个名为`Service`的类的静态方法`getAllByExcel`,该方法负责读取Excel文件并返回一个包含所有数据的`LocationEntity`对象列表。 2. 接下来,创建了一个`DBHelper`实例,用于与数据库交互。 3. 使用`for`循环遍历`listExcel`中的每一个`LocationEntity`对象: - 检查数据库中是否存在相同的ID(`if(!Service.isExist(id))`),如果不存在,则插入新数据(`insert into location(id,lat,lng) value(?,?,?)`)。 - 如果ID已经存在,更新已有记录的经纬度信息(`update location set lat=?, lng=? where id=?`)。 `DBToExcel`类则负责将数据库中的数据导出到Excel文件。它同样依赖于`WritableWorkbook`、`WritableSheet`等接口,这些接口来自JXL库,用于操作可写Excel文件。`DBToExcel`类的`main`方法执行以下步骤: 1. 创建一个`WritableWorkbook`对象,这是JXL库中用于创建或修改Excel文件的类。 2. 定义Excel文件的路径(`String filename = "c://desktop//xx.xls";`)并检查文件是否存在,如果不存在则创建。 3. 使用`WritableWorkbook`创建或打开Excel文件。 4. 之后,可以添加工作表(`WritableSheet`),设置列宽,以及将数据库中的数据写入工作表。 这两个类展示了如何使用Java和JDBC进行Excel与数据库间的交互。在实际项目中,可能需要更复杂的错误处理和性能优化,例如使用批处理SQL语句来提高数据导入的效率。同时,JXL库可能已过时,现代项目可能会选择Apache POI或OpenCSV等其他库来处理Excel文件。此外,确保数据的正确性和安全性也是关键,例如在处理用户输入时进行验证和清理,以防止SQL注入等安全问题。
import java.util.*;
//读取excel表中的数据到数据库中
public class ExcelToDB {
public static void main(String [] args){
//得到表格中所有的数据
List<LocationEntity> listExcel = Service.getAllByExcel("");
DBHelper db = new DBHelper();
for (LocationEntity location: listExcel){
int id = location.getId();
//如果数据库中不存在该id
if (!Service.isExist(id)){
//不存在就添加
String sql = "insert into location(id, lat, lng) value(?, ?, ?)";
String[] str = new String[]{id + "", location.getLat()+"", location.getLng()+""};
db.add(sql, str);
}else {
//存在该条数据就更新数据
String sql = "update location set lat=?, lng=? where id=?";
String[] str = new String[]{location.getLat()+"", location.getLng()+"", id+""};
db.add(sql, str);
}
}
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 14
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展