102

How to use H2 database's integrated managment frontend?

For operations such as create table, alter table, add column, and so on.

user1050755
  • 11,218
  • 4
  • 45
  • 56
blow
  • 12,811
  • 24
  • 75
  • 112
  • 3
    See the H2 web site for a list of [Database Frontends / Tools](http://h2database.com/html/links.html#tools). – Basil Bourque Aug 02 '15 at 20:54
  • 1
    More appropriate place for this Question is on the [Software Recommendations Stack Exchange](http://softwarerecs.stackexchange.com/). But there you must outline specific criteria for what you mean by “the best”. – Basil Bourque Mar 27 '16 at 06:04
  • See Wikipedia: [*Comparison of database tools*](https://en.wikipedia.org/wiki/Comparison_of_database_tools) – Basil Bourque Nov 22 '20 at 20:22

10 Answers10

91

I like SQuirreL SQL Client, and NetBeans is very useful; but more often, I just fire up the built-in org.h2.tools.Server and browse port 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 computers to connect - see below
[-webPort ]       The port (default: 8082)
[-webSSL]               Use encrypted (HTTPS) connections
[-browser]              Start a browser and open a page to connect to the web server
[-tcp]                  Start the TCP server
[-tcpAllowOthers]       Allow other computers to connect - see below
[-tcpPort ]       The port (default: 9092)
[-tcpSSL]               Use encrypted (SSL) connections
[-tcpPassword ]    The password for shutting down a TCP server
[-tcpShutdown ""]  Stop the TCP server; example: tcp://localhost:9094
[-tcpShutdownForce]     Do not wait until all connections are closed
[-pg]                   Start the PG server
[-pgAllowOthers]        Allow other computers to connect - see below
[-pgPort ]        The port (default: 5435)
[-baseDir ]        The base directory for H2 databases; for all servers
[-ifExists]             Only existing databases may be opened; for all servers
[-trace]                Print additional trace information; for all servers
trashgod
  • 203,806
  • 29
  • 246
  • 1,045
33

How about the H2 console application?

Joonas Pulakka
  • 36,252
  • 29
  • 106
  • 169
20

I use sql-workbench for working with H2 and any other DBMS I have to deal with and it makes me smile :-)

Hubat
  • 201
  • 2
  • 2
13

I would like to suggest DBEAVER .it is based on eclipse and supports better data handling

vinay
  • 1,121
  • 2
  • 12
  • 17
7

There's a shell client built in too which is handy.

java -cp h2*.jar org.h2.tools.Shell

http://opensource-soa.blogspot.com.au/2009/03/how-to-use-h2-shell.html

$ java -cp h2.jar org.h2.tools.Shell -help
Interactive command line tool to access a database using JDBC.
Usage: java org.h2.tools.Shell <options>
Options are case sensitive. Supported options are:
[-help] or [-?]        Print the list of options
[-url "<url>"]         The database URL (jdbc:h2:...)
[-user <user>]         The user name
[-password <pwd>]      The password
[-driver <class>]      The JDBC driver class to use (not required in most cases)
[-sql "<statements>"]  Execute the SQL statements and exit
[-properties "<dir>"]  Load the server properties from this directory
If special characters don't work as expected, you may need to use
 -Dfile.encoding=UTF-8 (Mac OS X) or CP850 (Windows).
See also http://h2database.com/javadoc/org/h2/tools/Shell.html
sync
  • 5,350
  • 2
  • 23
  • 32
3

I haven't used it, but RazorSQL looks pretty good.

D'Arcy Rittich
  • 167,292
  • 40
  • 290
  • 283
  • 5
    And it is not free. "The download expires 30 days after the first use. After the expiration, a registration code / serial number must be purchased to continue using RazorSQL. " – btpka3 Aug 17 '11 at 05:50
1

I would suggest Jetbrain's IDE: DataGrip https://www.jetbrains.com/datagrip/

David Groomes
  • 2,303
  • 1
  • 21
  • 23
1

If you are running it as an embedded database in spring I use the following configuration to enable the built in web client when the main app is running:

<!-- Run H2 web server within application that will access the same in-memory database -->
<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop" depends-on="h2WebServer">
    <constructor-arg value="-tcp,-tcpAllowOthers,-tcpPort,9092"/>
</bean>
<bean id="h2WebServer" class="org.h2.tools.Server" factory-method="createWebServer" init-method="start" destroy-method="stop">
    <constructor-arg value="-web,-webAllowOthers,-webPort,8082"/>
</bean>
Iain
  • 10,814
  • 3
  • 36
  • 31
1

I use DbVisualizer a lot for H2-db administration.

There exists a free version:

https://www.dbvis.com/download/

Aydin K.
  • 3,309
  • 36
  • 44