﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-hengheng123456789-文章分类-HSQL</title><link>http://www.blogjava.net/hengheng123456789/category/14922.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 17:16:00 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 17:16:00 GMT</pubDate><ttl>60</ttl><item><title>HSQL入门</title><link>http://www.blogjava.net/hengheng123456789/articles/68002.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Wed, 06 Sep 2006 04:08:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/articles/68002.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/68002.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/articles/68002.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/68002.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/68002.html</trackback:ping><description><![CDATA[
		<p>一、简介：<br />hsql数据库是一款纯Java编写的免费数据库，许可是BSD-style的协议，如果你是使用Java编程的话，不凡考虑一下使用它，相对其他数据库来说，其体积小，才563kb。仅一个hsqldb.jar文件就包括了数据库引擎，数据库驱动，还有其他用户界面操作等内容。在Java开源世界里，hsql是极为受欢迎的（就Java本身来说），JBoss应用程序服务器默认也提供了这个数据库引擎。由于其体积小的原因，又是纯Java设计，又支持SQL99，SQL2003大部分的标准，所以也是作为商业应用程序展示的一种选择。请到以下地址下载hsql： <a href="http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_7_3_3.zip?download">http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_7_3_3.zip?download</a></p>
		<p>二、使用hsql数据库：<br />1、hsql数据库引擎有几种服务器模式：常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-Only数据库。<br />2、最为常用的Server模式：<br />1)首先却换到lib文件夹下，运行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb<br />执行命令后，将会在db文件夹下创建一个数据库mydb，别名（用于访问数据库）是xdb，如果存在mydb数据库，将会打开它。<br />org.hsqldb.Server ,这个类是数据库的服务器,即起到启动和服务的作用,<br />java -cp /opt/hsqldb/hsqldb.jar org.hsqldb.Server -database /tmp/bd -port 9001 -system_exit=true <br />这个是网点上说的的一个命令,其实这个启动也不用那么的复杂,要加的参数,一是类包,需要设置classpath,二就是运行类名,-database /tmp/bd -port 9001 -system_exit=true 这都是运行的时候进行的连接和数据保存的路径<br />2)运行数据库界面操作工具：java -cp hsqldb.jar org.hsqldb.util.DatabaseManager<br />在Type选项里选上相应的服务器模式，这里选择HSQL Database Engine Server模式；Driver不用修改；URL修改为jdbc:hsqldb:hsql://localhost/xdb （主要这里xdb就是上面我们设置的别名）;user里设置用户名，第一次登录时，设置的是管理员的用户名，password设置密码。然后点击Ok。<br />3)第一次运行数据库引擎，创建数据库完毕。好了，你可以打开db文件夹，会发现里面多了几个文件。<br />mydb.properties文件：是关于数据库的属性文件。<br />mydb.script：hsql主要保存的表（这里按hsql的说法是Memory表，就是最为常用的），里面的格式都是文本格式，可以用文本查看，里面的语句都是sql语句，熟悉sql语句的话，你也可以手动修改它。每次运行数据库引擎的话都是从这里加载进内存的。<br />mydb.lck表示数据库处于打开状态。<br />其他的请参看hsqldb包里的手册。</p>
		<p>3、WebServer模式和Server运行模式基本一样，只是支持了Http等协议，主要用于防火墙，默认端口是9001。启动Server，java -cp hsqldb.jar org.hsqldb.WebServer ...剩余的和上面的一致。</p>
		<p>4、Servlet模式可以允许你通过Servlet容器来访问数据库，请查看hsqlServlet.java的源代码，和WebServer类似。</p>
		<p>5、另一个值得思考的模式是Standalone模式：不能通过网络来访问数据库，主要是在一个JVM中使用，那样的话，访问的速度会更加快。虽然文档里面提到主要是用于开发时使用，但是我们可以假设一下，该方法不需要一个引擎类的东西，而类似于打开文件的方式，返回一个Connection对象：<br />Connection c = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");<br />将会在当前目录找到mydb数据库相关文件，打开并返回一个Connection对象。该方式有点好处就是可以不使用引擎，在需要的时候操作数据。所以那些对数据库不是特别有要求的，但又需要一个操作数据库的方式的话，可以使用这种方法。对于那些不想额外在数据库引擎花费金钱的话，可以使用这种方法。但是不推荐使用该方法。记得Hibernate里SessionFactory可以使用openSession(Connecttion c)来获得一个Session对象的，因此，在测试或者实际应用的话都可以这样使用。</p>
		<p>6、Memory-Only 数据库：顾名思义，主要是内存中使用，不用于保存数据。可以用于在内存中交换数据。</p>
		<p>三、具体的链接与操作的话，和一般的JDBC操作一样。而相应的Server模式的话，连接地址主要你运行数据库界面操作工具时，在URL一栏时默认已经设好了，自己实习一下，对比其中参数。<br /></p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/68002.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2006-09-06 12:08 <a href="http://www.blogjava.net/hengheng123456789/articles/68002.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>