【发布时间】:2017-03-24 06:28:15
【问题描述】:
你好,
我在 Java Web 应用程序(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 月 10 日上午 11:15:59 org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory 初始化数据库
> 信息:启动嵌入式数据库: url='jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', 用户名='sa'
2016 年 10 月 10 日上午 11:15:59 org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript
INFO:从类路径资源 [create.sql] 执行 SQL 脚本
2016 年 10 月 10 日上午 11:15:59 org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript
INFO:从 479 中的类路径资源 [create.sql] 执行 SQL 脚本 女士。
2016 年 10 月 10 日上午 11:15:59 org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript
INFO:从类路径资源 [test.sql] 执行 SQL 脚本
2016 年 10 月 10 日上午 11:15:59 org.springframework.jdbc.datasource.init.ScriptUtils executeSqlScript
INFO:从 11 中的类路径资源 [test.sql] 执行的 SQL 脚本 女士。
2016 年 10 月 10 日上午 11:16:09 org.springframework.orm.hibernate5.HibernateTransactionManager afterPropertiesSet
信息:使用数据源 [org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory$EmbeddedDataSourceProxy@162b3d47] HibernateTransactionManager 的 Hibernate SessionFactory
但是当我打开 h2-console 并使用当前用户名和密码连接到这个数据库时,我什么也找不到。
这很奇怪,我不知道问题是什么。
请帮帮我。
非常感谢。
【问题讨论】:
标签: java spring hibernate datasource h2