需求:有excel文件,含多个sheet,每个sheet的内容对应插入到一张表,sheet的名称就是对应的表名称。
每一行为列名,例如:
达成:将每个sheet输出成一个以sheet名称命名的sql文件,内容为每行内容的insert语句。
以上图为例会生成三个sql文件,分别是TF_R_TERMINAL_ARCH.sql, TF_R_STOCK_TRADE.sql 和 TF_R_STOCK_TRADE_DETAIL.sql 如下图
下面是程序ExcelToInsert.java
注意事项:
1, 需要jxl.jar包
2, 数据量大可能导致以下两种情况的发生
a, 内存溢出
b, sql文件的后几行出现缺行,中断的情况
内存溢出的解决方法---> 增加JDK的可用内存
方法(以eclipse中为例):
Build Path -> Configura Build Path -> (选择JDK)Edit -> Installed JRE -> (选择JRE)Edit -> 在Default VM Arguments中填:
-Xms512m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=48m -XX:MaxPermSize=128m -Xverify:none -da
(前两个意思是起始内在512M,最大1024M,其他的就不解释了,我也不知道)
SQL文件最后出现断行中断情况的解决办法
如代码所示在write()方法后增加flush()方法