Java开源思想&技术--xlSQL (关键字: Excel,Java,SQL)
来源:互联网 发布:知乎 惊悚悬疑电影 编辑:程序博客网 时间:2024/05/24 06:17
首先,说明xlSQL的用途,在Java系统中通过SQL来操作Excel,就像操作数据库那样。
当项目处于Phase1时,由于对Apache组织的POI比较熟练,本人写了个专门基于它的一个Component,以实现对Excel文件的操作。同时,又在服务器端为每张Excel创建了一个Table以映射,目的很简单,提高了速度和安全性能,当然这有着很大的弊端。
后来,果然项目升级了,虽然可以为每个新的Excel动态Create Table,但是如果面对成千上万的Excel文件,是否要考虑考虑?我从Outlook的mail历史中,找到之前DM Frank发给我的一封信,xlSQL的简单用法,Research开始了。。。
xlSQL最新版本是Y7,从网上搜索来看,使用的人不多,少的可怜的文档,甚至他的官方网站也关了(后来还是开了),也许真的很少有人会对Excel要直接CURD的吧,但是我就恰恰碰上了。
在这里,我不打算把相关代码贴出来,只是总结一下他的思想和部分使用心得,也许有的朋友看到了会有些帮助。
代码上,会用JDBC的人就可以使用它,下载的包里有一个很小的TestCase类,看一下就知道了。
思想小结:
1,默认的Datasource定位在他的包的bin目录下,启动时扫描预读bin目录所有的Excel文件。
2,自启动HSQL/MySQL,用于和Excel交换数据(这个一直没有搞懂)。
3,Driver名称com.nilostep.xlsql.jdbc.xlDriver。我们可以用Spring给他装一个连接池,以加快速度。
4,SQL语句的表名,excel文件名.Sheet?,如“myexcel.Sheet1"。
5,Select,查询结果就是ResultSet,大家很熟悉的吧。
6,Insert,Update,Delete方面,这家伙比较笨可能,把原文件重写了一遍,所以别指望他帮你保留格式啊。而且Datasource必须关闭才能Commit到文件,否则只是在内存中进行,这一点提高了速度,不过它做的比较差的是内存中的操作历史没有log下来,这样,万一断电或者死机什么的,操作就白费了。然而Datasource关闭的最直接后果就是下次操作时需要重新连接(即使给他提供了Pool),这样的话又会扫描预读bin目录下的所有excel文件,很糟糕的是这需要不少时间,每个文件大概2s。(在寻找更好的解决方案)
7,最后,还有个头痛的事情就是,每次重新启动必须要删除上次生成的3个文件,一般会在Tomcat的bin目录下xlsql*.*,不然会有错,启动不了xlSQL(这个也在想办法)。
这里,说明一下,完全可以用POI解决它,但是如果大家不想重新发明轮子的话,可以考虑一下xlSQL,在使用这个家伙之前,请务必确认他的优势和弊端,权衡一下再作打算。
由于这个方面的文档比较匮乏,所有的使用过程是在摸索中进行的,在中文的网页上真的很难找到,英文的也不多,基本上没有。有什么建议或者问题请直接留言。
相关网站:
www.nilostep.com (不知道这是否能叫他们官方网站)
https://xlsql.dev.java.net/ (基本上这是网上最全的文档了,也没有超过一页)
http://jimcaprioli.blogspot.com/ (xlSQL作者的blog,这里能找到一点点相关信息)
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=649577(对我有些帮助的一个帖子,HP IT论坛)
Lastly, 3KS for your time.
当项目处于Phase1时,由于对Apache组织的POI比较熟练,本人写了个专门基于它的一个Component,以实现对Excel文件的操作。同时,又在服务器端为每张Excel创建了一个Table以映射,目的很简单,提高了速度和安全性能,当然这有着很大的弊端。
后来,果然项目升级了,虽然可以为每个新的Excel动态Create Table,但是如果面对成千上万的Excel文件,是否要考虑考虑?我从Outlook的mail历史中,找到之前DM Frank发给我的一封信,xlSQL的简单用法,Research开始了。。。
xlSQL最新版本是Y7,从网上搜索来看,使用的人不多,少的可怜的文档,甚至他的官方网站也关了(后来还是开了),也许真的很少有人会对Excel要直接CURD的吧,但是我就恰恰碰上了。
在这里,我不打算把相关代码贴出来,只是总结一下他的思想和部分使用心得,也许有的朋友看到了会有些帮助。
代码上,会用JDBC的人就可以使用它,下载的包里有一个很小的TestCase类,看一下就知道了。
思想小结:
1,默认的Datasource定位在他的包的bin目录下,启动时扫描预读bin目录所有的Excel文件。
2,自启动HSQL/MySQL,用于和Excel交换数据(这个一直没有搞懂)。
3,Driver名称com.nilostep.xlsql.jdbc.xlDriver。我们可以用Spring给他装一个连接池,以加快速度。
4,SQL语句的表名,excel文件名.Sheet?,如“myexcel.Sheet1"。
5,Select,查询结果就是ResultSet,大家很熟悉的吧。
6,Insert,Update,Delete方面,这家伙比较笨可能,把原文件重写了一遍,所以别指望他帮你保留格式啊。而且Datasource必须关闭才能Commit到文件,否则只是在内存中进行,这一点提高了速度,不过它做的比较差的是内存中的操作历史没有log下来,这样,万一断电或者死机什么的,操作就白费了。然而Datasource关闭的最直接后果就是下次操作时需要重新连接(即使给他提供了Pool),这样的话又会扫描预读bin目录下的所有excel文件,很糟糕的是这需要不少时间,每个文件大概2s。(在寻找更好的解决方案)
7,最后,还有个头痛的事情就是,每次重新启动必须要删除上次生成的3个文件,一般会在Tomcat的bin目录下xlsql*.*,不然会有错,启动不了xlSQL(这个也在想办法)。
这里,说明一下,完全可以用POI解决它,但是如果大家不想重新发明轮子的话,可以考虑一下xlSQL,在使用这个家伙之前,请务必确认他的优势和弊端,权衡一下再作打算。
由于这个方面的文档比较匮乏,所有的使用过程是在摸索中进行的,在中文的网页上真的很难找到,英文的也不多,基本上没有。有什么建议或者问题请直接留言。
相关网站:
www.nilostep.com (不知道这是否能叫他们官方网站)
https://xlsql.dev.java.net/ (基本上这是网上最全的文档了,也没有超过一页)
http://jimcaprioli.blogspot.com/ (xlSQL作者的blog,这里能找到一点点相关信息)
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=649577(对我有些帮助的一个帖子,HP IT论坛)
Lastly, 3KS for your time.
- Java开源思想&技术--xlSQL (关键字: Excel,Java,SQL)
- [Excel Jdbc Driver] [xlsql-Y7] [java jdbc sql操作excel]
- Java开源思想&技术--序言
- Java编程思想--static关键字
- java编程思想--final关键字
- java编程思想---static关键字
- java关键字过滤技术
- java开源思想
- java编程思想-——static关键字
- JAVA编程思想笔记-1-this关键字
- java编程思想学习笔记--private关键字
- Java编程思想之this关键字和static关键字
- 【重修Java】《Java编程思想》读书笔记——final关键字
- Java编程思想之静态技术
- Java编程思想18.3 - 序列化技术
- 【Java技术点】JAVA操作Excel文件
- JAVA编程思想(第4版)static关键字用法小结
- JAVA编程思想(第4版) this关键字用法小结
- Java开源思想&技术--序言
- 使用MIDP2.0开发游戏(4)改进的地图生成方式
- 使用MIDP2.0开发游戏(5)游戏内核
- 使用MIDP2.0开发游戏(6)设计Clock
- 你博我也博
- Java开源思想&技术--xlSQL (关键字: Excel,Java,SQL)
- 使用sunjce加密解密问题解决
- google的一道JAVA面试题!!! (转)
- 画线算法(使用加减法)
- java sdk standard edition(j2se)安装小记
- 开发出高性能的网站,第二部分 — 最佳缓冲控制(转)
- 使用MIDP2.0开发游戏(7)设计Scheduler
- 使用ASPxGrid 2.5
- 搜索引擎设计实用教程(4)-以百度为例