不在浏览器中显示H2表

时间:2016-11-10 09:27:14

标签: java spring hibernate datasource h2

您好,

我在浏览器中显示我在Java Web Application(Spring 4,Hibernate 5,Thymeleaf 3,H2database 1.4.192等)上创建的h2表时遇到问题。 它具有基于Java的配置。

我的数据源:

@Bean(name = "dataSource")
public DataSource getDataSource() {
    logger.info("Setting dataSource properties.");
    EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
    EmbeddedDatabase embeddedDatabase = builder
            .continueOnError(true)
            .setType(EmbeddedDatabaseType.H2)
            .addScript(CREATE_SCRIPT)
            .addScript(INIT_SCRIPT)
            .build();
    return embeddedDatabase;
}

我的'CREATE_SCRIPT':

CREATE TABLE CLIENTS
(
CLIENT_ID INT PRIMARY KEY AUTO_INCREMENT,
CLIENT_NAME VARCHAR(99) NOT NULL,
AGREEMENT BOOLEAN DEFAULT FALSE
);

CREATE TABLE ITEMS
(
  ITEM_ID INT PRIMARY KEY AUTO_INCREMENT,
  ITEM_NAME VARCHAR(99) NOT NULL,
  PRICE DECIMAL(10,2) NOT NULL
);

CREATE TABLE CLIENTS_ITEMS
(
  CLIENT_ID INT ,
  ITEM_ID INT NOT NULL,
  CONSTRAINT CLIENTS_CLIENT_ID_FK
  FOREIGN KEY (CLIENT_ID)
  REFERENCES CLIENTS(CLIENT_ID),
  CONSTRAINT ITEMS_ITEM_ID_FK
  FOREIGN KEY (ITEM_ID)
  REFERENCES ITEMS (ITEM_ID)
);

我的'INIT_SCRIPT':

INSERT INTO ITEMS
(ITEM_NAME, PRICE) VALUES  ('Book', 5.50);
INSERT INTO ITEMS
(ITEM_NAME, PRICE) VALUES ('Hook', 15.00);
INSERT INTO ITEMS
(ITEM_NAME, PRICE) VALUES ('Nook', 199.9);
INSERT INTO ITEMS
(ITEM_NAME, PRICE) VALUES ('Snook', 1.9);
INSERT INTO ITEMS
(ITEM_NAME, PRICE) VALUES ('Stook', 0.99);
INSERT INTO ITEMS
(ITEM_NAME, PRICE) VALUES ('Mobile Phone', 10);

表格创建100%因为我可以保留并获取数据。

  

2016年10月11日上午11:15:59   org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory   initDatabase

     

>信息:启动嵌入式数据库:   URL = 'JDBC:H2:MEM:TESTDB; DB_CLOSE_DELAY = -1; DB_CLOSE_ON_EXIT =假',   用户名= 'SA'

     

2016年10月11日上午11:15:59   org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript

     

INFO:从类路径资源[create.sql]

执行SQL脚本      

2016年10月11日上午11:15:59   org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript

     

INFO:在479中从类路径资源[create.sql]执行了SQL脚本   毫秒。

     

2016年10月11日上午11:15:59   org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript

     

INFO:从类路径资源[test.sql]

执行SQL脚本      

2016年10月11日上午11:15:59   org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript

     

INFO:11中从类路径资源[test.sql]执行的SQL脚本   毫秒。

     

2016年10月11日上午11:16:09   org.springframework.orm.hibernate5.HibernateTransactionManager   的afterPropertiesSet

     

信息:使用DataSource   [org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory$EmbeddedDataSourceProxy@162b3d47]   用于HibernateTransactionManager的Hibernate SessionFactory

但是当我打开h2-console并使用当前的用户名和密码连接到这个数据库时,我什么都找不到。

这很奇怪,我不知道问题是什么。 请帮帮我。
非常感谢。

1 个答案:

答案 0 :(得分:0)

问题在于您创建了一个内存数据库

jdbc:h2:mem:testdb
,该数据库不是持久的,您无法通过Web控制台连接到它。

请参阅:http://www.h2database.com/html/features.html#in_memory_databases

取决于你想做什么

相关问题