• 使用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>
    
    
  • 相关阅读:
    Windows环境下消息中间件RabbitMq的搭建与应用
    6.异常释放锁的情况
    5.synchronized锁重入
    4.脏读
    3.多线程(同步、异步)
    2.多线程(同步类级别锁)
    1.多线程同步
    24.Semaphore
    23.读写锁ReadWriteLock
    22.线程通信Condition
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/10747982.html
Copyright © 2020-2023  润新知