Spring Data JDBC 支持 Oracle 数据库

3
我非常喜欢spring-data-jdbc的方法,但似乎它不支持Oracle。是否可以使用spring-data-jdbc中的Mybatis支持来管理所有可以使用spring-data-jdbc完成的内容?本质上,我希望保留spring-data-jdbc的设计方法和领域驱动方法,并在spring-data-jdbc中使用Mybatis。这样,我可以开始利用spring-data-jdbc的api和方法,直到Orcale得到支持。或者在此时坚持使用纯粹的Mybatis而不使用Mybatis和spring-data-jdbc会更好。https://docs.spring.io/spring-data/jdbc/docs/2.0.1.RELEASE/reference/html/#requirements

请问您能否指出Oracle不受支持的文档或支持的数据库清单?我认为它支持Oracle。 - Smile
已编辑参考文献-https://docs.spring.io/spring-data/jdbc/docs/2.0.1.RELEASE/reference/html/#requirements - cloud-enterprise-arch
感谢分享文档。你尝试过自定义方言的方法吗? - Smile
https://github.com/springframeworkguru/springbootwebapp/blob/spring-boot-oracle/src/main/resources/application.properties - cloud-enterprise-arch
@微笑 我不熟悉自定义方言,也没有尝试过。似乎Oracle方言如下所示是为了Hibernate方言而存在的,因此才有这个问题。 spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect spring.jpa.hibernate.ddl-auto=create-drop https://github.com/springframeworkguru/springbootwebapp/blob/spring-boot-oracle/src/main/resources/application.properties - cloud-enterprise-arch
3个回答

0
如果您有兴趣使用Spring Data JDBC与Oracle,我建议您通过实现一个Dialect来实现它。在Dialect被要求之前,人们已经在Oracle上使用过它。
您可能会遇到一些尚未工作的功能,但应该能够通过注释查询、一些RowMappers和偶尔的自定义方法实现来解决它们。

0

我刚刚用 Oracle 数据库和 Spring Data JDBC 和 Spring Data JPA 设定了一个简单的例子,它工作正常(也不需要方言)。你能否提供有关你的情况的更多信息?或者你认为它不受支持,因为它在你分享的链接中未列出?


0

你能不能不使用Spring Data的2.2.6.RELEASE或2.3.0.RELEASE版本?它支持Oracle。以下依赖项可以很好地工作。

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.3.0.RELEASE</version>
</parent>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>


<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <version>19.6.0.0</version>
    </dependency>

</dependencies> 

你正在使用错误的启动器。正确的启动器是 spring-boot-starter-data-jdbc https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jdbc。你现在使用的启动器会提供像 JdbcTemplate 这样的东西,但不会提供 Repository 抽象。此外,在这个例子中,2.3.0 是 Spring Boot 的版本,而不是 Spring Data 的版本。 - Jens Schauder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接