zoukankan      html  css  js  c++  java
  • 使用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>
    
    
  • 相关阅读:
    初识python 2.x与3.x 区别
    装饰器
    函数的进阶
    Spring Boot启动问题:Cannot determine embedded database driver class for database type NONE
    22.Spring Cloud Config安全保护
    23.Spring Cloud Bus 无法更新问题(踩坑) Spring cloud config server Could not fetch remote for master remote
    24.Spring Cloud之Spring Cloud Config及Spring Cloud Bus
    Spring Boot整合Spring Data Elasticsearch 踩坑
    项目中Spring Security 整合Spring Session实现记住我功能
    32.再谈SpringBoot文件上传
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/10747982.html
Copyright © 2011-2022 走看看