流行開來源資料庫hsql

來源:互聯網
上載者:User
    前言:該文章只是簡單介紹一下hsql的入門內容,如果想仔細瞭解的話,參考官方協助文檔最為有用。
    修正添加了第四點。

一、簡介:
hsql資料庫是一款純Java編寫的免費資料庫,許可是BSD-style的協議,如果你是使用Java編程的話,不凡考慮一下使用它,相對其他資料庫來說,其體積小,才563kb。僅一個hsqldb.jar檔案就包括了資料庫引擎,資料庫驅動,還有其他使用者介面操作等內容。在Java開源世界裡,hsql是極為受歡迎的(就Java本身來說),JBoss應用程式伺服器預設也提供了這個資料庫引擎。由於其體積小的原因,又是純Java設計,又支援SQL99,SQL2003大部分的標準,所以也是作為商務應用程式展示的一種選擇。請到以下地址下載hsql: http://prdownloads.sourceforge.net/hsqldb/

二、使用hsql資料庫:
1、hsql資料庫引擎有幾種伺服器模式:常用的Server模式、WebServer模式、Servlet模式、Standlone模式、Memory-Only資料庫。
2、最為常用的Server模式:
1)首先卻換到lib檔案夾下,運行java -cp hsqldb.jar org.hsqldb.Server -database.0 db/mydb -dbname.0 xdb
執行命令後,將會在db檔案夾下建立一個資料庫mydb,別名(用於訪問資料庫)是xdb,如果存在mydb資料庫,將會開啟它。
2)運行資料庫介面操作工具:java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
在Type選項裡選上相應的伺服器模式,這裡選擇HSQL Database Engine Server模式;Driver不用修改;URL修改為jdbc:hsqldb:hsql://localhost/xdb (主要這裡xdb就是上面我們設定的別名);user裡設定使用者名稱,第一次登入時,設定的是管理員的使用者名稱,password設定密碼。然後點擊Ok。
3)第一次運行資料庫引擎,建立資料庫完畢。好了,你可以開啟db檔案夾,會發現裡面多了幾個檔案。
mydb.properties檔案:是關於資料庫的屬性檔案。
mydb.script:hsql主要儲存的表(這裡按hsql的說法是Memory表,就是最為常用的),裡面的格式都是文字格式設定,可以用文本查看,裡面的語句都是sql語句,熟悉sql語句的話,你也可以手動修改它。每次運行資料庫引擎的話都是從這裡載入進記憶體的。
mydb.lck表示資料庫處於開啟狀態。
其他的請參看hsqldb包裡的手冊。

3、WebServer模式和Server運行模式基本一樣,只是支援了Http等協議,主要用於防火牆,預設連接埠是9001。啟動Server,java -cp hsqldb.jar org.hsqldb.WebServer ...剩餘的和上面的一致。

4、Servlet模式可以允許你通過Servlet容器來訪問資料庫,請查看hsqlServlet.java的原始碼,和WebServer類似。

5、另一個值得思考的模式是Standalone模式:不能通過網路來訪問資料庫,主要是在一個JVM中使用,那樣的話,訪問的速度會更加快。雖然文檔裡面提到主要是用於開發時使用,但是我們可以假設一下,該方法不需要一個引擎類的東西,而類似於開啟檔案的方式,返回一個Connection對象:
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:mydb", "sa", "");
將會在目前的目錄找到mydb資料庫相關檔案,開啟並返回一個Connection對象。該方式有點好處就是可以不使用引擎,在需要的時候操作資料。所以那些對資料庫不是特別有要求的,但又需要一個操作資料庫的方式的話,可以使用這種方法。對於那些不想額外在資料庫引擎花費金錢的話,可以使用這種方法。但是不推薦使用該方法。記得Hibernate裡SessionFactory可以使用openSession(Connecttion c)來獲得一個Session對象的,因此,在測試或者實際應用的話都可以這樣使用。

6、Memory-Only 資料庫:顧名思義,主要是記憶體中使用,不用於儲存資料。可以用於在記憶體中交換資料。

三、具體的連結與操作的話,和一般的JDBC操作一樣。而相應的Server模式的話,串連地址主要你運行資料庫介面操作工具時,在URL一欄時預設已經設好了,自己實習一下,對比其中參數。

四、執行個體:
在Windows下使用:
        由於我們經常使用的是hibernate等orm工具作為資料層,所以很多時候對底層的sql都不再關注。通常我們都交由hibernate等工具來替我們管理資料庫串連等內容,經常我們只需要學會運行資料庫就足夠了。
       為了簡化操作,我們可以建立一個bat指令碼(runhsql.bat)該指令碼只需要和hsql.jar在一起,我們通常使用的是server模式:
      (1)runhsql.bat的內容:
          start  java  -cp  hsqldb.jar  org.hsqldb.Server
      (2)server.properties
           server.database.0=db/appfuse1
           server.dbname.0=appfuse1
           server.database.1=db/appfuse2
           server.dbname.1=appfuse2
     運行runhsql.bat之後,將會在db檔案夾下建立兩個資料庫檔案,別名為appfuse1和appfuse2
相應的例子:hibernate.xml檔案簡單配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost/appfuse1</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
       
        <property name="show_sql">true</property>
       
        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>
       
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property>
    </session-factory>
</hibernate-configuration>      
      

對這篇文章有什麼問題的話,請留言給作者。作者聯絡地址:Sidney.J.Yellow@gmail.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.