天道酬勤,学无止境

How to show content of local h2 database(web console)?

Recently I joined a new team and here guys use h2 for stub service.

I was wondering whether I can show the content of this database using web interface. At work it is available by going to localhost:5080

I have a project where I use h2 database, but I cannot see the h2 web console when I hit localhost:5080

I tried also localhost:8082 - it also doesn't work.

My project configuration (works successfully):

     <bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">
        <property name="targetName" value="dataSource" />
     </bean>

     <bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">
            <property name="targetName" value="dataSource" />
        </bean>

        <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
            <property name="driverClassName" value="org.h2.Driver" />
            <property name="url" value="jdbc:h2:~/test;MODE=PostgreSQL" />
            <property name="username" value="sa" />
            <property name="password" value="" />
        </bean>

        <bean id="sessionFactory"
              class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="wrappedDataSource"/>
            <property name="configLocation">
                <value>classpath:hibernate-test.cfg.xml</value>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.show_sql">false</prop>
                    <prop key="hibernate.connection.charSet">UTF-8</prop>
                    <prop key="hibernate.format_sql">true</prop>
                    <prop key="hbm2ddl.auto">create-drop</prop>
                </props>
            </property>
        </bean>

        <context:property-placeholder location="classpath:jdbc.properties"/>

I have not ideas how to access to h2 web console. please help.

P.S.

I see mentions of h2 only in .m2 folder

P.S.2

I noticed that web console available by http://localhost:8082/ if replace url in configuration with:

<property name="url" value="jdbc:h2:tcp://localhost/~/test;MODE=PostgreSQL" />

But it works if I already start h2(in .m2 folder find h2 jar file and hit double click)

If h2 is not started when I start application - i see following error:

java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:94)
    ...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dbInitializer': Invocation of init method failed; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
    ...
Caused by: org.hibernate.exception.GenericJDBCException: Could not open connection
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
    ...
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Соединение разорвано: "java.net.ConnectException: Connection refused: connect: localhost"
Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-182])
    at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
    ...
Caused by: org.h2.jdbc.JdbcSQLException: Соединение разорвано: "java.net.ConnectException: Connection refused: connect: localhost"
Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-182]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    ...
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    ...

I want to achieve that h2 starts if it not started when I start my application.

P.S.3

I have tried to wrote following code:

Server server = null;
try {
    server = Server.createTcpServer("-tcpAllowOthers").start();
    Class.forName("org.h2.Driver");
    Connection conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test;MODE=PostgreSQL", "sa", "");
 } catch (Exception e) {
    LOG.error("Error while initialize", e);
 }

I execute it and after I am trying to type localhost:9092 in my browser.

At this moment downloads file. inside file the following content:

Version mismatch, driver version is “0” but server version is “15”

my h2 version 1.4.182

P.S.4

This code works:

public class H2Starter extends ContextLoaderListener {
    private static final Logger LOG = LoggerFactory.getLogger(H2Starter.class);

    @Override
    public void contextInitialized(ServletContextEvent event) {

        startH2();
        super.contextInitialized(event);
    }

    private static void startH2() {

        try {
            Server.createTcpServer("-tcpAllowOthers").start();
            Class.forName("org.h2.Driver");
            DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test;MODE=PostgreSQL;AUTO_SERVER=TRUE", "sa", "");

            Server.createWebServer().start();
        } catch (Exception e) {
            LOG.error("cannot start H2 [{}]", e);
        }
    }

    public static void main(String[] args) {
        startH2();
    }
}

but I need to invoke it only when concrete spring profile active(now it works always)

标签

评论

Let's split the question into two parts.

Depending on how you specify the connection to H2, you'll get different operational modes.

Modes are: Embedded, In-Memory, Server.

jdbc:h2:~/test gives you a H2 instance in embedded mode. The embedded mode has a limitation of being accessible only through the same class loader and same JVM (proof)

jdbc:h2:mem:test gets you an in-memory H2 instance. That is also not accessible from outer world.

jdbc:h2:tcp://localhost/test will start H2 server and it will be accessible from outside of JVM server mode but with one limitation - the server needs to be started before the connection is made.

The last limitation is causing your Connection refused: connect: localhost" exception.

To sum everything up:

  • start the H2 server before you start application
  • use jdbc:h2:tcp://localhost/test as connection string
  • ....
  • happy coding :)

Update

Just noticed that you want to start the server in the process of launching application.

You can do that in several ways, depending how do you start the application:

  • If you're using maven / gradle it's easier for you to add some profile / task so that it gets executed before the application actually starts.
  • If you have to setup everything in java, I suggest you look at this question

Update 2

If connection to the local database is needed only for developing / debugging purposes I would setup everything using maven profile. Answers from this question will solve that.

If you need access to the H2 database in production (I can hardly imagine any use-case for that) it's better to do that in spring. Mainly because the application container / environment setup is likely to be different in production (compared to development environment).

To address the question regarding if to start the server outside of Spring context or not - it all depends on the requirements. One thing you should note is that the server should be started before the datasource is started (otherwise the spring context will not load)

Update 3

Unfortunately I'm not able to give you a working solution, but according to the JavaDocs there is a difference between TCP server and Web server. Take a closer look to the JavaDoc of H2 Server class.

I guess you should use Server.createWebServer() method to create the server (the difference between TCP server and Web server is that

Another great class you could use org.h2.tools.Console (JavaDoc here) Just run the main method of Console and I guess that should solve everything.

You ought to be able to use the in-memory or file-based variants, and then in your application fire up the H2 TCP server separately, e.g. using a Spring bean (mind the semi-pseudo code and sample port):

@Component
class Bootstrap {
    @PostConstruct
    public void startH2TcpServer() {
         Server.createTcpServer("-tcpPort", "9123", "-tcpDaemon").start();
    }
}

See http://www.h2database.com/html/tutorial.html#using_server

How about changing jdbc url in configuration to include

AUTO_SERVER=TRUE 

to start h2 automatically.

See Auto mixed mode

Multiple processes can access the same database without having to start the server manually. To do that, append ;AUTO_SERVER=TRUE to the database URL. You can use the same database URL independent of whether the database is already open or not. This feature doesn't work with in-memory databases.

Use the same URL for all connections to this database. Internally, when using this mode, the first connection to the database is made in embedded mode, and additionally a server is started internally (as a daemon thread). If the database is already open in another process, the server mode is used automatically.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Spring Boot默认的H2 jdbc连接(和H2控制台)(Spring Boot default H2 jdbc connection (and H2 console))
    问题 我只是想查看当我在application.properties未指定任何内容并以mvn spring:run开头时,spring-boot创建的嵌入式H2数据库的H2数据库内容。 我可以看到休眠的JPA正在创建表,但是如果我尝试通过数据库下面的URL访问h2控制台,则该表没有表。 http://localhost:8080/console/ 我看到这样的建议:查看由Spring启动的嵌入式H2数据库的内容 但是我不知道在春季启动时将建议的XML放在哪里,即使我这样做了,我也不希望在配置外部数据库时h2console可用,因此我更有可能需要处理此问题。使用某种条件代码(或者在最理想的情况下(仅当激活了Maven配置文件时我仅包含H2)才允许spring自动处理它)。 是否有人有示例代码显示如何使H2控制台在启动时工作(以及找出spring使用的jdbc连接字符串的方法)? 回答1 这就是我让H2控制台在H2的春季启动中工作的方式。 我不确定这是否正确,但是由于没有其他人提供解决方案,因此我将建议这是最好的方法。 就我而言,我为数据库选择了一个特定的名称,以便在启动H2控制台时可以输入一些内容(在本例中为“ AZ”)。 我认为所有这些都是必需的,尽管似乎忽略了spring.jpa.database-platform并没有任何伤害。 在application.properties中
  • 查看Spring启动的嵌入式H2数据库的内容(View content of embedded H2 database started by Spring)
    问题 由于以下配置,我想在Web浏览器中查看Spring启动的H2数据库的内容: <jdbc:embedded-database id="dataSource" type="H2" /> <jdbc:initialize-database data-source="dataSource"> <jdbc:script location="classpath:db/populateDB.sql"/> </jdbc:initialize-database> 我在日志中搜索了JDBC URL: DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem:dataSource;DB_CLOSE_DELAY=-1] 这样我就可以如下填写连接表格: 但是不幸的是,数据库仍然是空的,但是由于populateDB.sql脚本的原因,它不应该是空的。 任何想法? 谢谢! 回答1 与查看H2或HSQLDB内存数据库的内容几乎相同的问题。 只需将以下内容添加到您的配置中即可。 <bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start"
  • 在Spring应用程序中运行junit test时访问h2 Web控制台(Access to h2 web console while running junit test in a Spring application)
    问题 我正在构建一个Spring应用程序,并且需要从Web浏览器运行JUnit测试时,需要检查我的H2内存数据库。 在我的Spring配置中,我有一个Bean,它负责创建数据库模式并用一些将在我的JUnit测试中使用的数据填充它。 我还在测试上下文中添加了一个bean,该bean创建了一个Web服务器,最终我将在其中查找数据。 <bean id="org.h2.tools.Server-WebServer" class="org.h2.tools.Server" factory-method="createWebServer" init-method="start" lazy-init="false"> <constructor-arg value="-web,-webAllowOthers,-webPort,11111" /> </bean> 一切正常,因为数据库已正确填充,因为我可以从JUnit测试访问其数据,并且H2 Server仅在处于测试阶段时才运行(我可以知道,因为如果尝试访问my_ip:111111在调试测试之前,我无法连接,但是一旦开始测试,我就可以连接。 无论如何,如果我从Web浏览器打开H2控制台,则不会显示任何架构。 有任何想法吗?? 非常感谢!! 回答1 由于这可能会成为测试调试功能,因此可以在运行时使用@Before将其添加: import org.h2
  • ASP.NET Core MVC / Razor页面教程-第1部分 列表展示(根据官网教程)
    目录 1、创建书籍实体 2、将书籍实体添加到DbContext 3、配置Book实体 4、添加新的迁移并更新数据库 5、添加初始(样本)数据 6、创建应用程序服务 7、在浏览器的开发人员控制台中进行测试 8、创建书籍页面 9、将书籍页面添加到主菜单 10、本地化菜单项 11、图书清单 1、创建书籍实体 启动模板中的域层分为两个项目: ABPBookStore.Domain包含您的实体,域服务和其他核心域对象。ABPBookStore.Domain.Shared包含那些能够与客户共享的constants,enums或其他领域相关的对象。 在解决方案的域层(Acme.BookStore.Domain 项目)中定义实体。应用程序的主要实体是Book。在Acme.BookStore.Domain项目中创建一个名为 Book的类,如下所示: using System; using Volo.Abp.Domain.Entities.Auditing; namespace ABPBookStore { public class Book : AuditedAggregateRoot<Guid> { public string Name { get; set; } public BookType Type { get; set; } public DateTime PublishDate {
  • 基于 ubuntu基础镜像构建 H2 Database Server镜像
    基于 ubuntu基础镜像构建 H2 Database Server镜像 1.Dockerfile文件 FROM ubuntu:latest # 创建目录 RUN mkdir /usr/local/java # 拷贝jdk ADD jdk-8u251-linux-arm64-vfp-hflt.tar.gz /usr/local/java # h2数据库jar包 COPY h2-1.3.176.jar /h2.jar COPY entrypoint.sh /entrypoint.sh # 时区设置 RUN echo 'Asia/Shanghai' >/etc/timezone # 中文乱码 ENV LANG C.UTF-8 # JDK环境变量设置 ENV JAVA_HOME=/usr/local/java/jdk1.8.0_251 ENV JRE_HOME=/usr/local/java/jdk1.8.0_251/jre ENV PATH=$JAVA_HOME/bin:$PATH ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/java # 设置暴露的端口号 EXPOSE 19200 EXPOSE 8082 # 执行脚本命令(启动h2server) CMD /entrypoint.sh
  • 使用Java应用程序远程连接到H2数据库(Connect remotely to an H2 Database using a Java Application)
    问题 我遇到以下问题:当我尝试使用外部IP地址(PC的IP而不是我的本地IP =在cmd.exe中运行ipconfig后作为输出看到的IP)创建createTcpServer时,发生以下错误: 服务器错误:异常打开端口“ 9092”(端口可能正在使用),原因:“ java.net.BindException:无法分配请求的地址:JVM_Bind” [90061-169] 但是,该端口未使用。 我已经使用netstat -a -n进行了检查。 我已启用我的外部IP,并且已从路由器禁用了防火墙。 我的外部IP现在可以被ping通了。 请帮我。 更新:这是我启动tcp服务器的代码。 package businessApp; import org.h2.tools.Server; //imports the server utility public class startTcpServerForH2 { Server server; //the server's instance variable private static final String SERVER_IP = "192.168.1.101"; //fixed IP of the server private static final String SERVER_PORT = "9092"; //fixed port
  • Spring Boot default H2 jdbc connection (and H2 console)
    I am simply trying to see the H2 database content for an embedded H2 database which spring-boot creates when I don't specify anything in my application.properties and start with mvn spring:run. I can see hibernate JPA creating the tables but if I try to access the h2 console at the URL below the database has no tables. http://localhost:8080/console/ I see suggestions like this one: View content of embedded H2 database started by Spring But I don't know where to put the suggested XML in spring-boot and even if I did, I don't want the h2console to be available anymore when an external database
  • Can't see my H2 database in Web Console
    I created a H2 database with my code with this URL: jdbc:h2:C:/data/fixed.db My code can create tables, perform queries. If I open the file manually, I can successfully see its content and view the create queries etc However, when I try to use H2 console with the web interface, I can't see the database. Instead, the web console create another empty database located here C:/data/fixed.db.mv.db. I just can't load my database. What am I missing ? EDIT My code uses H2 1.3.175 The web console H2 1.4.178
  • laravel框架使用生涯
    手工安装laravel http://laravelacademy.org/resources-download 1、将下载的文件复制到虚拟主机目录 2、在Apache的配置文件配置一个虚拟主机【注意,需要指向 public目录下】 <VirtualHost *:80> DocumentRoot "C:\phpStudy\WWW\laravel.dev\public" ServerName laravel51.dev ServerAlias phpStudy.net <Directory "C:\phpStudy\WWW\laravel.dev\public"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory> </VirtualHost> 3、配置hosts文件 127.0.0.1 laravel51.dev 4、浏览器访问效果 laravel目录结构分析 整体目录 app目录 http目录 config目录 config目录:主要是存放配置文件信息,laravel的配置信息是分文件保存的。 database目录 database目录:数据迁移和种子文件。 例如某个数据迁移文件
  • Store pictures in H2 database spring boot thymleaf
    Good day. I want to store an image in an h2 database, then retrieve and display the same image in an html page. I am using spring boot and file upload method, but I am getting errors in the binding results Here are the pages/classes: Category.java package com.vishal.project.entities; @Entity @Table(name="category") public class Category implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy= GenerationType.IDENTITY) @Column(name="ID") private Long id; @Size(min=1, max=90) @Column(name="CATEGORY_NAME") private String CategoryName; @Lob @Column
  • Koa与常用中间件的使用
    1.Koa是什么? Node.js 是一个异步的世界,官方 API 支持的都是 callback 形式的异步编程模型,这会带来许多问题,例如callback 的嵌套问题 ,以及异步函数中可能同步调用 callback 返回数据,可能会带来不一致性,为了解决以上问题 Koa 出现了。 Koa 是基于 Node.js 平台的下一代 web 开发框架。 Koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 Koa 编写 web 应用,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。Koa不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手,开发思路和 Express 差不多,最大的特点就是可以避免异步嵌套。 2.Koa框架的安装使用 (1).安装 Node.js 7.6以上的版本 使用Koa开发之前,Node.js 是有要求的,它要求 Node.js 版本高于 V7.6,因为 Node.js 7.6 版本 开始完全支持 async/await,所以才能完全支持我们的 Koa。 (2).安装 Koa npm install --save koa 或者用淘宝镜像的 cnpm install --save koa (3).Koa的基本使用 // 引入Koa var koa =
  • Spring Boot整合H2内存数据库配置及常见问题处理
    文章目录 H2 数据库简介内存数据库配置与控制台连接在内存中创建表以及插入数据SpringBoot整合H2内存数据查询常见问题及解决问题1: Database "mem:XXX" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149问题2: 初始化的表没有建立问题3: 添加实体类后,内存表中的记录没有了 示例代码地址 在Spring Boot项目中使用H2数据库,可以不需要安装独立的数据库程序,仅需要导入一个.jar 文件。数据库的数据可以保存在文件中,也可以通过的创建表和插入数据的SQL语句直接存放在内存中,这对于演示或是示例程序是非常便捷的。 H2 数据库简介 H2是一个开源的数据库,其使用Java语言开发,可以像MySQL、Oracle那样独立运行,也可以嵌入项目中使用。 所谓嵌入使用,就是不需要单独安装,只需要导入一个jar文件就可以。 使用H2数据库, 数据库的记录可以保存在文件中,也可以直接保存在内存中。对于演示或是教学项目使用内存数据库很方便,不需要独立安装数据库,只需要提供创建表和插入数据的.sql文件就可以。 Spring Boot对H2提供了很好的支持
  • SpringBoot实践(一):基于springboot的web开发和实例
    这里直接使用idea的new project方式新建一个spirng init,然后基于当前配置完成spring mvc的web页面开发测试,包含几个小的实例; 一、环境配置 使用springboot进行web开发,需了解一些常规知识: 前端知识:Html,CSS,JavaScript 后端框架:springboot,SpringMVC,thymeleaf 持久层及数据交互:MyBatis,RDB 资源负载:H5,Ng 开发工具:IDEA,MAVEN 使用IDEA工具导入springboot的web工程,选择了若干个插件支撑,lombok(自动化set和get),springweb框架,mybatis和h2数据库(本地不用装mysql),spring其他组件:https://spring.io/guides 添加thymeleaf的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 标准目录如下 ,其中package的controller下放一些自定义的restAPI接口定义,mapper目录下放一些mybatis的查询接口(interface)
  • Spring Boot多个数据源(Spring Boot Multiple Datasource)
    问题 我对Spring Boot还是很陌生,我想为我的项目创建一个多数据源。 这是我目前的情况。 我有两个用于多个数据库的实体包。 比方说 com.test.entity.db.mysql ; for entities that belong to MySql com.test.entity.db.h2 ; for entities that belong to H2 Databases 所以,目前我有两个实体类 UserMySql.java @Entity @Table(name="usermysql") public class UserMysql{ @Id @GeneratedValue public int id; public String name; } UserH2.java @Entity @Table(name="userh2") public class Userh2 { @Id @GeneratedValue public int id; public String name; } 我想实现一个配置,如果我从UserMySql创建用户,它将被保存到MySql数据库,如果我从Userh2创建用户,它将被保存到H2数据库。 因此,我也有两个DBConfig,比如说MySqlDbConfig和H2DbConfig。 (com.test
  • jQuery Draggable,Droppable,ASP.NET MVC(jQuery Draggable, Droppable, ASP.NET MVC)
    问题 我一直在浏览关于jQuery可拖放的许多教程,并试图将其应用于ASP.NET MVC,但我真的很困惑。 我一直发现的大多数样本似乎很难理解,至少在哪里与事物在何处有关。 我基本上是在尝试建立可定位的框(“花名册”)和单元列表(“与会者”)。 目的是能够将任何单位拖到框中,然后将它们添加到数据库的花名册中。 有谁知道一些更简单的示例,这些示例可能会阐明如何将jQuery的这一部分与ASP.NET MVC一起使用? 例如,我一直在查看http://philderksen.com/2009/06/18/drag-and-drop-categorized-item-list-with-jquery-and-aspnet-mvc-part-1/和它非常整洁,但是并没有说明我需要什么。 这没有什么意义,而且大多数代码都散布着,我什至无法追踪在哪里进行了某些调用来弄清楚接线方式。 (例如,jQuery如何调用Controller动作以在放下某些东西时触发?如何获取被拖动的项目的ID,以便可以将其添加到目标中?) 在这里,我做了一些更改-对于造成的困惑,我深表歉意。 我如何设法达到目标仍然不太有效。 如果将事物重新排列在其原始列表中,而仅当放到另一个列表中时,是否可以使其不引发事件? <%@ Page Title="" Language="C#" MasterPageFile="~
  • H2内存数据库。 找不到表格(H2 in-memory database. Table not found)
    问题 我有一个URL为"jdbc:h2:test"的H2数据库。 我使用CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64));创建一个表CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64)); 。 然后,我使用SELECT * FROM PERSON从此(空)表中选择所有内容。 到目前为止,一切都很好。 但是,如果将URL更改为"jdbc:h2:mem:test" ,唯一的区别是数据库现在仅在内存中,这给了我org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154] org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154] 。 我可能在这里缺少一些简单的东西,但是任何帮助将不胜感激。 回答1 DB_CLOSE_DELAY=-1 hbm2ddl创建表后关闭连接
  • 用于管理H2数据库的前端工具(Frontend tool to manage H2 database [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 5年前关闭。 改善这个问题 如何使用H2数据库的集成管理前端? 对于诸如创建表,更改表,添加列等操作。 回答1 我喜欢SQuirreL SQL Client,而NetBeans非常有用。 但更常见的是,我只是启动内置的org.h2.tools.Server并浏览端口8082: $ java -cp /opt/h2/bin/h2.jar org.h2.tools.Server -help Starts the H2 Console (web-) server, TCP, and PG server. Usage: java org.h2.tools.Server When running without options, -tcp, -web, -browser and -pg are started. Options are case sensitive. Supported options are: [-help] or [-?] Print the list of options [-web] Start the web server with the H2 Console [-webAllowOthers] Allow other
  • H2 database in memory mode cannot be accessed by Console
    I am creating an in memory database in H2 database by the following code on servlet context startup void initDb() { try { webserver = Server.createWebServer().start(); Class.forName("org.h2.Driver"); Connection conn = DriverManager.getConnection("jdbc:h2:mem:db1;DB_CLOSE_DELAY=-1","SA",""); InputStream in = getClass().getResourceAsStream("script.sql"); if (in == null) { System.out.println("Please add the file script.sql to the classpath, package " + getClass().getPackage().getName()); } else { RunScript.execute(conn, new InputStreamReader(in)); Statement stat = conn.createStatement()
  • 在Spring Boot使用H2内存数据库
    文章目录添加依赖配置数据库配置添加初始数据访问H2数据库 在Spring Boot使用H2内存数据库在之前的文章中我们有提到在Spring Boot中使用H2内存数据库方便开发和测试。本文我们将会提供一些更加具体有用的信息来方便我们使用H2数据库。添加依赖配置要想使用H2,我们需要添加如下配置:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency>数据库配置有了上面的依赖,默认情况下Spring Boot会为我们自动创建内存H2数据库,方便我们使用,当然我们也可以使用自己的配置,我们将配置写入application.properties:spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring
  • 搭建 SkyWalking 服务(For ElasticSearch 7)
    [TOC] 搭建 SkyWalking 服务(For ElasticSearch 7) 关于SkyWalking的基础使用参考: 基于 SkyWalking 实现服务链路追踪 官方文档: SkyWalking 文档中文版(社区提供) Apache SkyWalking 官方文档 下载压缩包 首先我们需要获取到SkyWalking的下载地址,官方下载地址如下: http://skywalking.apache.org/downloads/ 这里我选择当前最新的6.6.0版本的二进制包,由于一会需要对接的es服务版本为7.x,所以这里得选择for ElasticSearch 7: 复制下载地址到服务器上进行下载并解压,具体步骤如下: [root@localhost ~]# cd /usr/local/src [root@localhost /usr/local/src]# wget http://mirror.bit.edu.cn/apache/skywalking/6.6.0/apache-skywalking-apm-es7-6.6.0.tar.gz [root@localhost /usr/local/src]# mkdir ../skywalking && tar -zxvf apache-skywalking-apm-es7-6.6.0.tar.gz -C