《spring boot》8.2章学习时无法正常启动,报“ORA-00942: 表或视图不存在 ”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《spring boot》8.2章学习时无法正常启动,报“ORA-00942: 表或视图不存在 ”相关的知识,希望对你有一定的参考价值。
在学习《spring boot》一书的过程中,由于原书作者难免有一些遗漏的的地方,或者系统、软件版本不一致、框架更新等各种因素,完全安装书中源码页不能实现项目的正常启动
在8.2章节,演示JPA对oracle的支持时,配置文件中设置了如下代码,正常情况下应该支持数据库自动创建序列和表,但实际启动时却报错“ORA-00942: 表或视图不存在 ”
spring.datasource.driverClassName=oracle.jdbc.OracleDriver spring.datasource.url=jdbc\\:oracle\\:thin\\:@localhost\\:1521\\:xe spring.datasource.username=XXXXX(此处请替换为你的数据库用户名) spring.datasource.password=XXXXX(此处请替换为你的数据库用户名对应的密码) #1 spring.jpa.hibernate.ddl-auto=update #2 spring.jpa.show-sql=true #3 spring.jackson.serialization.indent-output=true
需要插入数据的data.sql:
insert into person(id,name,age,address) values(hibernate_sequence.nextval,xxx‘,32,‘合肥‘); insert into person(id,name,age,address) values(hibernate_sequence.nextval,‘xx‘,31,‘北京‘); insert into person(id,name,age,address) values(hibernate_sequence.nextval,‘yy‘,30,‘上海‘); insert into person(id,name,age,address) values(hibernate_sequence.nextval,‘zz‘,29,‘南京‘); insert into person(id,name,age,address) values(hibernate_sequence.nextval,‘aa‘,28,‘武汉‘); insert into person(id,name,age,address) values(hibernate_sequence.nextval,‘bb‘,27,‘合肥‘);
解决办法:
在src/main/resources下面在新建一个schema.sql,内容如下:
create sequence hibernate_sequence increment by 1 start with 1 maxvalue 999999999;
CREATE TABLE person (id NUMBER(5) PRIMARY KEY,name VARCHAR2(15) NOT NULL,age NUMBER(5),address VARCHAR2(15)) TABLESPACE your_table_space(此处替换为你登录的数据库账户对应的表空间,若还没有表空间,那你需要添加一行创建表空间的sql在这段代码的开头)
表空间可以在这里查看:
如果项目启动完成,访问页面出现“Whitelabel Error Page”, 请调整项目代码的文件结构:
com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web +- CustomerController.java
本文的解决方案完全参考自如下链接:
http://blog.csdn.net/lvyuan1234/article/details/65631176
以上是关于《spring boot》8.2章学习时无法正常启动,报“ORA-00942: 表或视图不存在 ”的主要内容,如果未能解决你的问题,请参考以下文章
带有 Spring Boot 2.0 @ConfigurationProperties 的 Kotlin 无法正常工作
Spring Boot 定时任务,怎么实现任务动态增删启停?