<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中運行,不用單獨啟動服務器,請關注后續文檔,稍后整理好再發布。自己碼了一下午才整理好這一篇,看來得提高效率了,如果這篇文檔能對大家所有幫助,那就太好了。
    主站蜘蛛池模板: 一个人看的www在线免费视频| 亚洲国产午夜精品理论片在线播放| 国产A∨免费精品视频| 啊灬啊灬别停啊灬用力啊免费看| 亚洲一级高清在线中文字幕| 国内精自视频品线六区免费| 亚洲蜜芽在线精品一区| av大片在线无码免费| 亚洲熟妇丰满xxxxx| 国产免费无遮挡精品视频 | 亚洲一区二区影院| 免费A级毛片无码专区| 亚洲同性男gay网站在线观看| 免费做爰猛烈吃奶摸视频在线观看 | 欧洲美熟女乱又伦免费视频| 精品在线视频免费| 在线精品亚洲一区二区小说| a毛片免费全部播放完整成| 亚洲制服中文字幕第一区| 成人免费视频69| 亚洲成AV人片在WWW| 2022中文字字幕久亚洲| 日韩免费电影网址| 亚洲同性男gay网站在线观看| 国产麻豆剧传媒精品国产免费| 天天综合亚洲色在线精品| 亚洲无线码一区二区三区| 最近中文字幕2019高清免费| 亚洲日韩国产一区二区三区在线| 亚洲 另类 无码 在线| 国产精品白浆在线观看免费| 亚洲一级大黄大色毛片| 亚洲国产精品尤物yw在线| 久久免费看少妇高潮V片特黄| 免费看污成人午夜网站| 一级毛片a免费播放王色电影| 久久精品国产亚洲av日韩| 国产又大又长又粗又硬的免费视频 | 免费无码毛片一区二区APP| 99亚洲精品卡2卡三卡4卡2卡| 亚洲第一AV网站|