我现在正在使用 oracle 和 spring jdbc,但我不想在我的 sql 语句中使用模式:
示例:从 SCHEMA.table 中选择 *
有没有办法在 application.properties 或 application.yml 中设置默认模式?
原文由 Jose Amadeo Diaz Diaz 发布,翻译遵循 CC BY-SA 4.0 许可协议
我现在正在使用 oracle 和 spring jdbc,但我不想在我的 sql 语句中使用模式:
示例:从 SCHEMA.table 中选择 *
有没有办法在 application.properties 或 application.yml 中设置默认模式?
原文由 Jose Amadeo Diaz Diaz 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设您使用 spring 数据源定义数据库连接,您可以在定义数据源配置时设置默认模式:
您可以在此处找到更多信息: Spring Boot 参考指南。附录 A. 常见应用程序属性
在做了一些研究之后,看起来 Oracle 驱动程序不允许您设置要使用的默认架构,如下所述:
Oracle 连接 URL 中的默认模式
从那篇文章中,您有两个选择:
我建议使用第一个选项。据我所知,Spring boot 在检索连接时没有提供执行语句的简单方法,因此最好的办法是使用
getConnection
方法(或检索来自数据源的连接)并在那里执行语句。根据您的评论,解决此问题的更简单方法是使用
spring.datasource.schema
中的脚本:然后是 squema.sql 文件,内容如下: