<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 2, comments - 27, trackbacks - 0, articles - 60
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    HSQLDB數據庫使用介紹

    Posted on 2017-04-23 16:41 ZhouFeng 閱讀(5018) 評論(0)  編輯  收藏 所屬分類: 原創DataBase
    用過HSQLDB一段時間,其作為一個小型數據庫,很是小巧,jar包也就1M多,麻省雖小,五臟俱全。對于一此網站系統或是小型的應用系統,應該足夠滿足要求了,主要是綠色環保,不需要進行安裝,這點我很喜歡,特別是直接打包到web應用里,可以直接使用,用不著更換運行環境后,重新配置數據庫連接。下面就介紹一下hsqldb的一些簡單的使用

    下載HSQLDB
    首先下載hsqldb,其官方網站為hsqldb.org,目前最新版本是2.4.0,最早用過1.9版本的,就覺得甚是喜歡,主頁界面上有下載的鏈接,就一個壓縮文件包,不需要區分操作系統。下載后解壓即可

    目錄結構介紹
    bin:存放運行的批處理,可以參照著放入自己的批處理用于啟動或管理數據庫
    data:用于存放數據文件的地方,新解壓時為空,后面自己用的時候,可能放在里面,也可以放在其他地方
    doc:文檔,與數據庫操作的所有文檔都在里面,很詳細,有什么問題可以在里面找找
    lib:jar文件,HSQLDB核心的jar包
    sample:一些配置的模板

    數據庫啟動
    HSQLDB運行分為三種模式,分別為內存模式,進程模式,和服務器模式。
    在內存模式下,所有的數據都將在內存中完成,如果程序退出,則相應的數據也將同時被銷毀。連接JDBC的實例為:jdbc:hsqldb:mem:dbname
    在進程模式下,是直接以文件方式進行操作,所有文件均寫入文件,關閉數據庫后數據可以保留,這種模式下不能接受其他程序訪問
    服務器模式,常用,又分為三種,即Servet,WebServer,Servlet,詳見官方文檔,服務器模式單獨啟動一個JVM用于提供數據庫服務,并開放連接端口,其他程序可以通過jdbc或客戶端連接,這也是在開發和調試中常用的一種方式,在上線運行后,可采用進程模式
    以Server方式啟動服務器
    修改bin/runServer.bat,另存為myBookServer
    cd ..\data
    @java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:book --dbname.0 bookdb
    即在data目錄下創建數據文件,文件名為book,啟動服務的數據庫名為bookdb,如果需要修改監聽端口,可以使用--poot 9002,如果不修改端口,可以不用添加這個參數,默認端口為9001,啟動后的顯示如下
    D:\hsqldb-2.4.0\hsqldb\bin>myBookServer.bat

    D:\hsqldb-2.4.0\hsqldb\bin>cd ..\data
    [Server@4517d9a3]: Startup sequence initiated from main() method
    [Server@4517d9a3]: Could not load properties from file
    [Server@4517d9a3]: Using cli/default properties only
    [Server@4517d9a3]: Initiating startup sequence
    [Server@4517d9a3]: Server socket opened successfully in 6 ms.
    [Server@4517d9a3]: Database [index=0, id=0, db=file:book, alias=bookdb] opened successfully in 354 ms.
    [Server@4517d9a3]: Startup sequence completed in 362 ms.
    [Server@4517d9a3]: 2017-04-23 15:22:33.599 HSQLDB server 2.4.0 is online on port 9001
    [Server@4517d9a3]: To close normally, connect and execute SHUTDOWN SQL
    [Server@4517d9a3]: From command line, use [Ctrl]+[C] to abort abruptly
    看到這個提示,說明數據庫已經啟動好了,并開啟了監聽端口9001,現在可以通過客戶端程序連接了
    在bin目錄下,有一個runManager.bat和一個runManagerSwing.bat,這兩個批處理都可以打開自帶的客戶端程序,只是界面風格有所不同,runManager要簡潔些,下面介紹一下runManagerSwing的使用,雙擊打開后,需要填寫連接信息,當然也可以在命令行里通過參數的方式進行連接,在彈出對話框里輸入連接信息

    mybook是為當前配置取的名字,URL里添加上bookdb,如果不是9001端口的話,還需要添加端口,如//localhost:9001/bookdb,登錄后,就可以進入到管理界面了

    在這里操作HSQLDB,比如創建表,修改數據之類的,如果需要修改密碼之類的操作,文檔里有詳解
    創建表,插入數據,可以上圖界面中運行如下命令
    CREATE TABLE TB_BOOKS(BOOKID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,BOOKNAME VARCHAR(30),AUTHOR VARCHAR(30));
    創建一個book表,分別為bookid,bookname,author

    JDBC訪問
    接下來用JAVA寫入數據并測試
    package com.zhouf.hsql;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    public class HsqlTest {

        public static void main(String[] args) throws SQLException {
            //initData();
            Connection conn = getConnection();
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("select * from tb_books");
            while(rs.next()){
                System.out.println(rs.getString("bookname") + "=>" + rs.getString("author"));
            }
            rs.close();
            stmt.close();
            conn.close();

        }
        
        public static Connection getConnection(){
            Connection conn = null;
            try {
                Class.forName("org.hsqldb.jdbcDriver");
                conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/bookdb", "SA", "");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
        
        public static void initData() throws SQLException{
            
            Connection conn = getConnection();
            Statement stmt = conn.createStatement();
            for (int i = 10; i < 30; i++) {
                String sql = "insert into tb_books(bookname,author) values('BookName"+i+"','Author"+i+"')";
                System.out.println(sql);
                stmt.addBatch(sql);
            }
            
            stmt.executeBatch();
            stmt.close();
            conn.close();
        }

    }
    先調用initData()初始化數據,就可以在管理界面中看到數據了,再運行java可以讀取數據,JDBC連接沒有問題,記得一定要在工程里引用lib/hsqldb.jar庫
    此時在data目錄下有很多book開頭的文件,只是后綴有所不同,有臨時文件,日志文件,屬性文件以及腳本文件等,如果運行了shutdown命令,則其他文件會自動清理,僅保留properties和script文件,如果要帶走數據庫,把這兩個文件帶走就好了。
    如果不希望每次打開管理界面都彈出對話框要求輸入內容,可以在命令行里添加參數,拷貝一份bin/runManagerSwing.bat并修改為如下內容
    cd ..\data
    @java -classpath ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManagerSwing --url jdbc:hsqldb:hsql://localhost/bookdb --user SA
    另存為myBookManager.bat,下次直接運行這個批處理就可能直接連接到數據庫服務器,不用再彈出連接對話框了,前提是服務器正在運行中,如果運行了shutdown關閉了服務器,則需要重新啟動服務器進行連接。
    至此,基本的hsqldb的使用就完成了,文檔里還有其它更多的配置和連接方式,詳細情況請參閱doc目錄下的文檔。
    如果需要把hsqldb嵌入到webapp中運行,不用單獨啟動服務器,請關注后續文檔,稍后整理好再發布。自己碼了一下午才整理好這一篇,看來得提高效率了,如果這篇文檔能對大家所有幫助,那就太好了。
    主站蜘蛛池模板: 亚洲av之男人的天堂网站| 免费jjzz在线播放国产| 亚洲成a人片77777老司机| 国产精品小视频免费无限app| 亚洲AV无码成H人在线观看| 男男黄GAY片免费网站WWW| 四虎影视永久免费观看网址| 亚洲欧美在线x视频| 四虎AV永久在线精品免费观看| 美女露100%胸无遮挡免费观看| 亚洲国产成人久久综合一区77 | 67194成是人免费无码| 亚洲一区二区三区不卡在线播放 | 国产精品成人免费福利| 亚洲中文字幕无码av在线| 成人免费视频88| 羞羞视频网站免费入口| 狠狠综合久久综合88亚洲| 久久久久久AV无码免费网站下载| 久久久婷婷五月亚洲97号色 | 久久精品亚洲一区二区| 69xx免费观看视频| 亚洲欧美日韩一区二区三区| 免费在线观看日韩| 97无码人妻福利免费公开在线视频| 亚洲国产精品SSS在线观看AV| **实干一级毛片aa免费| 久久精品国产亚洲AV未满十八| 亚洲欧洲一区二区三区| 99久久免费精品高清特色大片| 亚洲欧美成aⅴ人在线观看| 亚洲精品国产高清嫩草影院| 日韩免费无码一区二区三区| 国产午夜亚洲精品国产| 亚洲综合区小说区激情区| 99国产精品免费观看视频| 女bbbbxxxx另类亚洲| 亚洲第一福利视频| 国产精品免费小视频| 久久精品国产这里是免费| 亚洲美国产亚洲AV|