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>