使用h2數據庫

h2數據庫提供了一個簡單的web管理界面java

import org.h2.tools.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.sql.SQLException;

/**
 * @ClassName: H2DBServerStartListener
 * @Description: 用於啓動H2數據庫服務的監聽器,在應用系統初始化時就啓動H2數據庫的服務
 * @author: 孤傲蒼狼
 * @date: 2014-12-20 下午11:43:39
 */
public class H2DBServerStartListener implements ServletContextListener {
Logger logger = LoggerFactory.getLogger(H2DBServerStartListener.class);
//H2數據庫服務器啓動實例
private Server server;

/*
 * Web應用初始化時啓動H2數據庫
 */
public void contextInitialized(ServletContextEvent sce) {
    try {
        System.out.println("正在啓動h2數據庫...");
        //使用org.h2.tools.Server這個類建立一個H2數據庫的服務並啓動服務,因爲沒有指定任何參數,那麼H2數據庫啓動時默認佔用的端口就是8082
        server = Server.createTcpServer().start();
        System.out.println("h2數據庫啓動成功...");
    } catch (SQLException e) {
        e.printStackTrace();
        logger.error("啓動h2數據庫出錯:", e);
        throw new RuntimeException(e);
    }
}

/*
 * Web應用銷燬時中止H2數據庫
 */
public void contextDestroyed(ServletContextEvent sce) {
    if (this.server != null) {
        // 中止H2數據庫
        this.server.stop();
        this.server = null;
    }
}
}

在web.xml中註冊h2服務器:web

<!-- 使用監聽器啓動和中止數據庫 -->
    <listener>
        <listener-class>controller.H2DBServerStartListener</listener-class>
    </listener>

 
    <!-- 使用H2控制檯的Servlet H2控制檯是一個獨立的應用程序,包括它本身的Web服務器,但它能夠做爲一個servlet做爲-->
    <servlet>
        <servlet-name>H2Console</servlet-name>
        <servlet-class>org.h2.server.web.WebServlet</servlet-class>
        <init-param>
            <param-name>webAllowOthers</param-name>
            <param-value></param-value>
        </init-param>
        <init-param>
            <param-name>trace</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!--servlet映射-->
    <!-- 映射H2控制檯的訪問路徑 -->
    <servlet-mapping>
        <servlet-name>H2Console</servlet-name>
        <url-pattern>/console/*</url-pattern>
    </servlet-mapping>
相關文章
相關標籤/搜索