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>