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主题


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

查看所有标签

猜你喜欢:

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

社交电商

社交电商

[美] Stephan Spencer(斯蒂芬.斯宾塞)、[美] Jimmy Harding(吉米.哈丁)、[美] Jennifer Sheahan(詹尼弗.希汉) / 谭磊 / 电子工业出版社 / 2015-3 / 69.00元

你想要在互联网上赚钱吗?想要做好电子商务吗?那么你一定不能忽视社交媒体的力量。不管你想要营销的是实物商品、电子类产品还是本地的服务,这本书会教你怎么做。 《社交电商》全面介绍形形色色的社交媒体以及如何利用这些社交媒体来为你的企业做好服务。如果你经营得不好,在社交媒体上散发出的只是噪声而不是真正的信息。 而如果做得好,社交媒体会成为你最有效的营销工具,帮助你赢得老客户的拥戴,获得新的客户。 ......一起来看看 《社交电商》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具