《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

posted @ 2017-06-11 22:32  李代桃僵  阅读(2597)  评论(0编辑  收藏  举报