使用h2数据库

h2数据库提供了一个简单的web管理界面

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服务器:

    <!-- 使用监听器启动和停止数据库 -->
    <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>

猜你喜欢

转载自www.cnblogs.com/weiyinfu/p/10747982.html