根据Excel数据生成sql语句

1.读取Excel表格数据

[Java] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private static void writeStore(String path) throws Exception {
        Workbook workbook = new XSSFWorkbook(new File(path));
        //读取excel中的sheet表名
        Sheet sheet = workbook.getSheet("xxx表名");
        int totalRow = sheet.getLastRowNum();
        System.out.println("总共:" + totalRow);
        //循环独处表中每一行中每一列的值
            for (int i = 1; i <= totalRow; i++) {
            Row row = sheet.getRow(i);
            // 门店编码
            String store_code = row.getCell(1).getStringCellValue();
            // 门店名称
            String store_name = row.getCell(2).getStringCellValue();
            // 门店地址
            String store_address = row.getCell(3).getStringCellValue();
            // 经度 转换string类型
            String longitude = resultContent(row.getCell(4));
            // 纬度
            String latitude = resultContent(row.getCell(5));
    .....
            String storeSql = "insert into 表名 (store_code,store_name,store_address,longitude,latitude,......)"
                    + " values('" + store_code + "','" + store_name + "','" + store_address + "','" + longitude + "','"
                    + latitude + "');";
            System.out.println(storeSql);
//将sql写入文档中
            writeTxtCount("存入sql文件.sql", storeSql);
        }
    }


2.存入.sql文件中

[Java] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
//传入文件路径  和生成的sql
private static boolean writeTxtCount(String path, String content) {
        BufferedWriter bufferedWriter = null;
        try {
            bufferedWriter = new BufferedWriter(new FileWriter(path, true));
            bufferedWriter.write(content + "\r\n");
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                bufferedWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return false;
    }


##方法

[Java] 纯文本查看 复制代码
?
1
2
3
4
5
//转化成string
private static String resultContent(Cell cell) {
        cell.setCellType(CellType.STRING);
        return cell.getStringCellValue();
    }

 

[Java] 纯文本查看 复制代码
?
1
2
3
public static void main(String[] args) throws Exception {
        writeStore("表名路径.xlsx ");
    }

更多学习资料可关注gzitcast获取(weiixn)

 

一、简介 1.1前言 1、由于最近工作一直用Oracle,故对Oracle数据库研究为对象。 2、根据工作业务需求实际情况进行功能研发。为什么要开发呢?因为在数据库升级或者迁移的时候,为了保证不同环境不同数据数据保持同步,故数据库SQL脚本非常作用。比如:数据库主脚本,副脚本,增量脚本。 3、 什么是主脚本、副脚本、增量脚本呢? 3.1、主脚本指数据库表或存储过程,视图脚本,序列等脚本。 3.2、副脚本指必须执行主脚本之后才执行的脚本。换句话说在没执行主键脚本的情况下,副脚本执行之后会回滚事务失败。 3.3、增量脚本指在执行主脚本或副脚本之后,根据需求对某个表添加/修改约束(主外键约束,长度约束等),添加/修改字段/添加数据等情况对数据库结构改变处理的一种行为脚本。 1.2作用 1、 快速产出自定义规则需要的SQL脚本。 2、减少人工编写SQL脚本出错率问题,完全通过程序检测SQL准确性。 3、帮助开发人员提高SQL编写效率,减少人工编写SQL开发成本问题。 4、帮助开发人员节约时间,同时避免繁琐不必要编写SQL的工作。 二、实现方式与原理 2.1实现方式 1、实现方式分:正向与逆向实现。什么是正向与逆行呢【是否有鸡还是有蛋,先后道理同等】 2、正向方式:首先把设计好数据库表文档,把所有表的字段属性配置到EXCEL或者CSV格式的文件通过JXL/POI技术去读取文件的字段,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 3、逆向方式:首先有数据库表,然后通过ORM持久化技术连接数据库再读取表的字段等属性出来,再通过其他技术一系列程序处理之后生成所需要的SQL脚本。 2.2原理 对数据库软件内置核心表或视图查询出来存储用户行为表结构所有属性信息,对此属性结构信息进行分析与组装所需要SQL脚本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值