How to see all tables in my h2 database at localhost:8082?

前端 未结 10 1236
误落风尘
误落风尘 2021-02-01 02:43

I use JDBC and created h2 database called usaDB from sql script. Then I filled all tables with jdbc.

The problem is that after I connect to usaDB at localhost:8082 I can

10条回答
  •  南旧
    南旧 (楼主)
    2021-02-01 03:18

    This problem drove me around the twist and besides this page I read many (many!) others until I solved it.
    My Use Case was to see how a SpringBatch project created in STS using :: Spring Boot :: (v1.3.1.RELEASE) was going to behave with the H2 database; to do the latter, I needed to be able to get the H2 console running as well to query the DB results of the batch run.

    This is what I did and found out:

    1. Created an Web project in STS using Spring Boot:

      • Added the following to the pom.xml of the latter:
      • Added a Spring configuration file as follows to the project: This solves the Web project deficiencies in STS. If you run the project now, you can access the H2 console as follows: http://localhost:8080/console
    2. Now create a SpringBatch project in STS as follows (the alternative method creates a different template missing most of the classes for persisting data. This method creates 2 projects: one Complete, and the other an initial. Use the Complete in the following.):

      • The SpringBatch project created with STS uses an in memory H2 database that it CLOSES once the application run ends; once you run it, you can see this in the logging output.
      • So what we need is to create a new DataSource that overrides the default that ships with the project (if you are interested, just have a look at the log messages and you will see that it uses a default datasource...this is created from: o.s.j.d.e.EmbeddedDatabaseFactory with the following parameters:
        Starting embedded database: url='jdbc:hsqldb:mem:testdb', username='sa')
      • So, it starts an in memory, and then closes it. You have no chance of seeing the data with the H2 console; it has come and gone.
      • So, create a DataSource as follows:
      • You can of course use a properties file to map the parameters, and profiles for different DataSource instances...but I digress.
      • Now, make sure you set the bit that the red arrow in the picture is pointing to, to a location on your computer where a file can be persisted.
      • Running the SpringBatch (Complete project) you should now have a db file in that location after it runs (persisting Person data)
      • Run the Web project you configured previously in these steps, and you WILL :=) see your data, and all the Batch job and step run data (et voila!): Painful but rewarding. Hope it helps you to really BOOTSTRAP :=)

提交回复
热议问题