使用jdbc模板

时间:2017-05-19 21:47:47

标签: spring-boot spring-jdbc

我有一个使用spring jdbc模板的spring boot应用程序,用于DAO层连接到Oracle DB。数据库用户名与运行查询的模式不同。因此,当运行查询时,它需要使用不同的模式运行,我不想为模式的硬编码值添加前缀(对于ex select * from user1.table.....

我研究了一下,无法找到一种简单直接的方法。

对于ex,如果我使用JPA,我可以简单地配置属性spring.jpa.properties.hibernate.default_schema=<schema name>但是在使用spring jdbc

时找不到相同的配置方法

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,并没有找到理想的方法来做到这一点。当应用程序加载时,我最终在SQL中设置了架构。至少我能够重用spring.jpa.properties.hibernate.default_schema,我已经为JPA默认模式设置了final String schemaName = jpaProperties.getProperties().get("hibernate.default_schema"); jdbcTemplate.execute("SET SCHEMA '" + schemaName + "'");

<Application x:Class="WpfResources.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <Color x:Key="MyColor">GreenYellow</Color>

            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Dictionary1.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

    </Application.Resources>
</Application>

这显然不太理想,但它比在多个地方定义您的架构更好。

(注意:我自动安装了JpaProperties和JdbcTemplate。)

答案 1 :(得分:-1)

您需要使用Oracle JDBC驱动程序。

一个很好的例子:

来自mykong文章:

# Oracle settings
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=system
spring.datasource.password=password
spring.datasource.driver-class-oracle.jdbc.driver.OracleDriver

https://www.mkyong.com/spring-boot/spring-boot-spring-data-jpa-oracle-example/