分类: Java
2008-12-22 10:15:28
这两天,有个问题一直困扰着我,就是我从s2DAO官网下载下来的示例程序,跑是跑起来,数据也展现出来了。
但是我一没建库,二没建表。这些数据是从哪冒出来的呢?怎么感觉像是无源之水啊,然道是天上掉下来的?石头中蹦出来的?像孙大圣那样。晕
今天,在调查s2DAO的事务处理这个问题的时候,突然发现了上面那个问题的答案:
在中,我看到这样的表述:
S2Dao,为了能够简单的体验数据库功能,提供了HSQLDB 作为RDBMS。 lib/hsqldb.jar在运行HSQLDB时是必须的,但是在实际环境中则不需要。
赶紧Google,查HSQLDB。在中,我看到这些表述:
HSQLDB是一个使用 语言编写的 ,有一个 ,支持ANSI-92 SQL的一个子集。提供对 和 的小型,快速的引擎。这个产品是Hypersonic SQL的后续产品,2001年启动。
仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。
第一次运行数据库引擎,创建数据库完毕。 mydb.properties文件:是关于数据库的属性文件。 mydb.script:hsql主要保存的表(这里按hsql的说法是Memory表,就是最为常用的),里面的格式都是文本格式,可以用文本查看,里面的语句都是sql语句,熟悉sql语句的话,你也可以手动修改它。每次运行数据库引擎的话都是从这里加载进内存的。
突然想起,自己在例子程序中,确实看到过这样的sql脚本文件demo.script,我赶紧改动其中的一条insert语句,再测试,效果立马体现了。
至此,困惑我近2天的问题找到答案了。这个例子程序中,并没有使用我们传统意义上的数据库和表,而是使用硬盘上的文件来存储数据信息。每次运行都是从这个文件中将数据读到内存中(即介绍中提到的硬盘表和内存表)。
事后小结:其实答案就在官方文档中,它已经有了相关表述,尽管在偌长的文档中只说了这一句。自己以后看官网文档还是要再仔细些。