<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    HSQLDB啟動方便,不用安裝,在之前的文檔里已介紹過如何以服務(wù)器模式啟動,并且通過JDBC連接,接下來介紹如何在webapp中嵌入hsqldb,讓其可以隨應(yīng)用一起啟動,比如和Tomcat服務(wù)器一起啟動,不用單獨(dú)啟動數(shù)據(jù)庫。這里有兩種模式可以選擇
    一種是進(jìn)程模式啟動,按文件方式加載數(shù)據(jù)庫,只有與Tomcat服務(wù)器在同一JVM中才能訪問
    另一種是用JAVA程序來啟動服務(wù)器,以網(wǎng)絡(luò)方式提供數(shù)據(jù)庫服務(wù),可以在Tomcat之外用hsqldb客戶端來連接,方便調(diào)試
    這兩種數(shù)據(jù)文件都建議放在工程里,如下案例中是將數(shù)據(jù)庫放在WEB-INF/db/目錄下

    1.加載hsqldb.jar
    將hsqldb.jar文件加入到現(xiàn)有webapp工程中,拷貝hsqldb.jar至WEB-INF/lib/hsqldb.jar

    2.創(chuàng)建WEB-INF/db/目錄
    在開發(fā)階段,需要把數(shù)據(jù)文件放在工程中,而不是tomcat里,這樣處理對打包,版本控制管理也方便
    為了方便啟動數(shù)據(jù)庫,可以寫一個批處理,如WEB-INF/startdb.bat,大家可根據(jù)自己的路徑修改,內(nèi)容如下
    cd db
    @java -classpath ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:mycms --dbname.0 mycmsdb
    文件名和數(shù)據(jù)庫名可以不同,此處文件名為mycms,而數(shù)據(jù)庫名為mycmsdb

    3.使用Servlet啟動數(shù)據(jù)庫
    可以創(chuàng)建一個自啟動Servlet,用于啟動數(shù)據(jù)庫,這種方式可以使用客戶端工具連接到應(yīng)用數(shù)據(jù)庫上,主要用于在線調(diào)試,或遠(yuǎn)程管理
    package com.zhouf.mydb;

    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;

    import org.hsqldb.server.Server;

    @WebServlet(loadOnStartup=1)
    public class HsqldbServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        
        private Server server = new Server();
           
        public HsqldbServlet() {
            super();
            // TODO Auto-generated constructor stub
        }

        public void init(ServletConfig config) throws ServletException {
            super.init(config);
            String path=this.getServletContext().getRealPath("/WEB-INF/db/mycms");
            System.out.println("dbpath["+path+"]");
            
            server.setDatabaseName(0, "mycmsdb");
            server.setDatabasePath(0, path);
            server.setPort(9001);
            server.setSilent(true);
            Thread thread=new Thread(new Runnable(){
                public void run() {
                    server.start();
                }
            });
            thread.start();
        }

        public void destroy() {
            super.destroy();
            server.shutdown();
        }
        
    }
    注意服務(wù)端口不要沖突

    4.完成一個數(shù)據(jù)庫連接類,用于處理數(shù)據(jù)庫連接管理
    public class DBManage {

        public static Connection getConnection() {
            Connection conn = null;
            try {
                
                //根據(jù)連接配置獲取數(shù)據(jù)庫連接
                Class.forName("org.hsqldb.jdbcDriver").newInstance();
                
                //*
                
    //連接Hsqldb Server
                conn= DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mycmsdb;shutdown=true","SA","");
                /*/
                
                //直接獲得In-process連接
                String path = DBManage.class.getResource("").toString();
                String dbpath = path.substring(0,path.indexOf("classes")) + "db/mycms";

                conn = DriverManager.getConnection("jdbc:hsqldb:"+dbpath,"SA","");
                //
    */
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return conn;
        }
    }
    上面的連接管理兩種方式都支持,可選用,這樣應(yīng)用可以發(fā)布到tomcat里獨(dú)立運(yùn)行,也可以打包成war發(fā)布,這樣一個帶war文件就可以演示,相當(dāng)愉快:D
    主站蜘蛛池模板: 亚洲综合国产成人丁香五月激情 | 亚洲最大的成人网站| 亚洲一区免费观看| 狠狠色伊人亚洲综合成人| 国产人成网在线播放VA免费| 亚洲精品无码专区久久同性男| 日韩大片在线永久免费观看网站| 国产男女猛烈无遮挡免费视频网站 | 亚洲精品线路一在线观看| 美女露隐私全部免费直播| 四虎影视在线永久免费观看| 国产成人综合亚洲绿色| 亚洲男人在线无码视频| a级毛片无码免费真人久久| 亚洲动漫精品无码av天堂| 91福利免费体验区观看区| 亚洲网站视频在线观看| 国内精品乱码卡1卡2卡3免费| 亚洲高清有码中文字| 在线观看免费精品国产| 男女啪啪免费体验区| 永久亚洲成a人片777777| 无码国产精品一区二区免费模式| 亚洲视频免费在线看| 成人免费看黄20分钟| 亚洲制服丝袜中文字幕| 成年人在线免费看视频| 亚洲AV一区二区三区四区| 亚洲人成国产精品无码| 免费91最新地址永久入口 | 亚洲三级高清免费| 四虎成人精品在永久免费| a视频在线免费观看| 亚洲国色天香视频| 永久免费av无码网站大全| 中文在线观看免费网站| 亚洲美女自拍视频| 国产男女猛烈无遮档免费视频网站 | 四虎在线视频免费观看| 五级黄18以上免费看| 亚洲欧洲国产综合|