使用java spring boot jdbc模板执行oracel sql ddl statemenet后如何获得响应?
我正在使用Spring启动应用程序。我想在执行所有ddl语句后得到响应。就像当我创建表时,然后是response使用java spring boot jdbc模板执行oracel sql ddl statemenet后如何获得响应?,java,spring,spring-boot,spring-jdbc,Java,Spring,Spring Boot,Spring Jdbc,我正在使用Spring启动应用程序。我想在执行所有ddl语句后得到响应。就像当我创建表时,然后是responsetable created,当我创建视图时,然后是responseview created,类似于函数、过程、触发器和其他所有ddl语句 在我的代码中,当异常发生时,然后响应,如删除函数BMS.factorial11到ORA-04043:对象factorial11不存在和删除表测试_table到ORA-00942:表或视图不存在 我想得到所有的响应,就像发生异常时一样。所以我的问题是,
table created
,当我创建视图时,然后是responseview created
,类似于函数、过程、触发器和其他所有ddl语句
在我的代码中,当异常发生时,然后响应,如删除函数BMS.factorial11
到ORA-04043:对象factorial11不存在
和删除表测试_table
到ORA-00942:表或视图不存在
我想得到所有的响应,就像发生异常时一样。所以我的问题是,在SpringBoot应用程序中是否可能
应用程序属性
spring.datasource.url=url
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver
Controller.java
@PostMapping("/run-script")
public String runScript(@RequestBody String sc) {
try {
db.execute(sc);
} catch (Exception e) {
return n;
}
将DDL脚本包装在存储过程或smth中,将输出记录在临时表或smth中,并将其定义为存储过程的返回值。然后可以将其作为结果集返回,并使用RowMapper或smth对其进行解析。总而言之,这是一个糟糕的方法。您应该将DDL放在应用程序之外,并使用Oracle的专用工具运行它。SQL injection:it's free real estate:)