SpringBoot+SpringDataJPA+Oracle教程示例

栏目: Java · 发布时间: 6年前

内容简介:当你从Spring Boot开始时,如果没有定义其他数据源并且在类路径上找到H2,它将自动支持H2。我一直在使用H2进行开发。它工作得很好。所有现代关系数据库都将支持ANSI SQL。但每个人都会有自己的细微差别和扩展。我喜欢H2的一件事是它的Oracle兼容模式。它允许H2充当Oracle数据库。它并不完美,但确实做得很好。Spring Framework是用于构建企业级应用程序的最流行的Java框架。Oracle是企业中最常用的数据库。所以,如果开发Spring应用程序你早晚会使用到Oracle数据库

当你从Spring Boot开始时,如果没有定义其他数据源并且在类路径上找到H2,它将自动支持H2。我一直在使用H2进行开发。它工作得很好。所有现代关系数据库都将支持ANSI SQL。但每个人都会有自己的细微差别和扩展。我喜欢H2的一件事是它的Oracle兼容模式。它允许H2充当Oracle数据库。它并不完美,但确实做得很好。

Spring Framework是用于构建企业级应用程序的最流行的 Java 框架。Oracle是企业中最常用的数据库。所以,如果开发Spring应用程序你早晚会使用到Oracle数据库。

Oracle Database Driver

由于法律限制,Oracle JDBC驱动程序不在公共Maven存储库中。那么我们只能使用Maven将驱动jar包安装到本地maven库中:

1. 从oracle下载jdbc驱动

2. 使用此Maven命令将JAR安装到Maven存储库中。您可能需要根据下载的JDBC驱动程序版本调整版本和名称。

mvn install:install-file -Dfile=ojdbc8.jar -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar

现在就可以像正常使用jar包在你的pom.xml中配置oracle了:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>12.2.0.1</version>
    <scope>runtime</scope>
</dependency>

注意这里groudId和artifactId需要与前面第二步mvn install中的名称一致。

开始SpringBoot应用

开始SpringBoot有很多方式,通过Spring网站的引导,或者Idea的Spring初始化都可以,我们选择组件有三个:Web JPA和H2,开发时使用H2,生产环境使用Oracle,最终生成的pom.xml如下:

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

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>12.2.0.1</version>
    <scope>runtime</scope>
</dependency>

Spring Boot提供不同环境的配置,我们有开发和生产两个环境,因此分别建立两个配置文件:

application-dev.properties:开发环境

application-prod.properties:生产环境

默认配置application.properties中内容是:

spring.application.name=product
spring.profiles.active=dev

dev代表application-dev.properties起作用,dev我们使用的H2数据库,无需配置,因此可以是空白,如果我们需要切换到生产环境,将dev改为prod:

spring.application.name=product
spring.profiles.active=prod

这时,Springboot将加载application-prod.properties配置:

spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/pengpdborcl
spring.datasource.username=scottpeng
spring.datasource.password=scottpeng
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update

上述是Oracle Jdbc的配置,Hibernate 5以后可以使用g.hibernate.dialect.Oracle12cDialect。

spring.jpa.generate-ddl=true

spring.jpa.hibernate.ddl-auto=update

这两行将根据模型代码自动生成数据库。

之后你可以使用JP配置实体,比如:

@Entity
public class Product {
   @javax.persistence.Id
   private String Id;
   private String name;

Oracle数据库将生成一个PRODUCT的数据表。

仓储操作代码只要继承一个接口,简单CRUD操作就不需要编写SQL,这样非常适合DDD聚合根的编程,CQRS实现读写分离,查询继续使用 SQL 或存储过程,模型写入采取JPA:

public interface ProductRepo extends JpaRepository<Product, String> {
}

Github完整源码

Spring Boot主题


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

More Eric Meyer on CSS (Voices That Matter)

More Eric Meyer on CSS (Voices That Matter)

Eric A. Meyer / New Riders Press / 2004-04-08 / USD 45.00

Ready to commit to using more CSS on your sites? If you are a hands-on learner who has been toying with CSS and want to experiment with real-world projects that will enable you to see how CSS......一起来看看 《More Eric Meyer on CSS (Voices That Matter)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具