SpringBoootの4:JPA
19380 ワード
一、JPAの基本概要
1、JPA(Java Persistence API:一つの規範)
JPAは、JDKの注記、XMLファイルを使用して、メモリ内のオブジェクトであるデータベース・テーブルのマッピング関係を記述し、1つのオブジェクトをデータベース・テーブルに永続化します.
2、Spring Data(一つのフレームワーク:JPA仕様の実現)
Spring Dataは、データベースへのアクセスをシンプル化し、クラウドサービスをサポートするオープンソースフレームワークです.主な目標は、データベースへのアクセスを容易にし、map-reduceフレームワークとクラウドコンピューティングデータサービスをサポートすることです.また、Oracle RACなどのリレーショナル・データベース・ベースのデータ・サービスもサポートします.大量のデータを持つプロジェクトについては、Spring Dataでプロジェクトの開発を簡素化することができ、Spring FrameworkがJDBC、ORMをサポートするように、Spring Dataはデータへのアクセスをより便利にすることができます.
3、Spring Data JPA(Spring Dataフレームの一つのモジュール)
Spring Dataはオープンソースフレームワークであり、このフレームワークでSpring Data JPAはこのフレームワークのモジュールの1つであるため、名前はSpring Data JPAと呼ばれている.JPA開発を単独で使用すると、このコード量はJDBC開発と同じように少し煩わしいことに気づくので、Spring Data JPAの登場は、JPAの書き方を簡略化するために、インタフェースを1つ作成してクラスを継承するだけでCRUD操作を実現することができます.
JPAの書き方を極めて簡略化し,ほとんど書き込みを行わずにデータへのアクセスと操作を実現できる.CRUDに加えて、ページング、ソートなどの一般的な機能も含まれています.
二、Spring Boot JPA-Hibernate配置手順
1、pom.xml oracle、spring-data-jpa依存を追加
2、アプリケーションで.propertiesファイルでのOracle接続プロファイルの構成
三、Spring Boot JPA-Hibernate開発手順
1、エンティティークラスの作成
2、エンティティークラスを作成するインタフェース
3、操作実体クラスのサービスクラスを作成する
4、具体的な業務を作成するコントロールクラス
四、Spring Bootを起動する
Spring Bootプロジェクトを起動し、ページでContrllerクラスにアクセスする方法で対応するCRUD操作を実行できます.
1、JPA(Java Persistence API:一つの規範)
JPAは、JDKの注記、XMLファイルを使用して、メモリ内のオブジェクトであるデータベース・テーブルのマッピング関係を記述し、1つのオブジェクトをデータベース・テーブルに永続化します.
2、Spring Data(一つのフレームワーク:JPA仕様の実現)
Spring Dataは、データベースへのアクセスをシンプル化し、クラウドサービスをサポートするオープンソースフレームワークです.主な目標は、データベースへのアクセスを容易にし、map-reduceフレームワークとクラウドコンピューティングデータサービスをサポートすることです.また、Oracle RACなどのリレーショナル・データベース・ベースのデータ・サービスもサポートします.大量のデータを持つプロジェクトについては、Spring Dataでプロジェクトの開発を簡素化することができ、Spring FrameworkがJDBC、ORMをサポートするように、Spring Dataはデータへのアクセスをより便利にすることができます.
3、Spring Data JPA(Spring Dataフレームの一つのモジュール)
Spring Dataはオープンソースフレームワークであり、このフレームワークでSpring Data JPAはこのフレームワークのモジュールの1つであるため、名前はSpring Data JPAと呼ばれている.JPA開発を単独で使用すると、このコード量はJDBC開発と同じように少し煩わしいことに気づくので、Spring Data JPAの登場は、JPAの書き方を簡略化するために、インタフェースを1つ作成してクラスを継承するだけでCRUD操作を実現することができます.
JPAの書き方を極めて簡略化し,ほとんど書き込みを行わずにデータへのアクセスと操作を実現できる.CRUDに加えて、ページング、ソートなどの一般的な機能も含まれています.
二、Spring Boot JPA-Hibernate配置手順
1、pom.xml oracle、spring-data-jpa依存を追加
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>com.examplegroupId>
<artifactId>SpringBoot_JPAartifactId>
<version>0.0.1-SNAPSHOTversion>
<packaging>jarpackaging>
<name>SpringBoot_JPAname>
<description>Demo project for Spring Bootdescription>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.0.0.RELEASEversion>
<relativePath/>
parent>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.2.15version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-devtoolsartifactId>
<optional>trueoptional>
<scope>truescope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-jpaartifactId>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<configuration>
<fork>truefork>
configuration>
plugin>
plugins>
build>
project>
2、アプリケーションで.propertiesファイルでのOracle接続プロファイルの構成
#######################################################
###datasource :
########################################################
spring.datasource.url = jdbc:oracle:thin************:orcl
spring.datasource.username = ****_test
spring.datasource.password = ****_test
spring.datasource.driverClassName = oracle.jdbc.driver.OracleDriver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
########################################################
### Java Persistence Api --
########################################################
# Specify the DBMS
spring.jpa.database = ORACLE
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect
三、Spring Boot JPA-Hibernate開発手順
1、エンティティークラスの作成
/**
* 。
*
* ?
*
* 1、 @Entity , JPA
* @Entity , 。
*
*
* ?
* 2、 @Id .
*
*/
@Entity
public class Cat {
/**
* @Id .
*
* @GeneratedValue(strategy=GenerationType.AUTO)
*
*
*/
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
2、エンティティークラスを作成するインタフェース
public interface CatInterface extends CrudRepository<Cat, Integer> {
}
3、操作実体クラスのサービスクラスを作成する
@Service
public class CatService {
@Resource
private CatInterface catInterface;
/**
* save,update ,delete .
*
* @Transactional .
*
*/
@Transactional
public void save(Cat cat) {
catInterface.save(cat);
}
@Transactional
public void delete(Integer id) {
catInterface.deleteById(id);
}
public Iterable getAll(){
return catInterface.findAll();
}
}
4、具体的な業務を作成するコントロールクラス
@RestController
@RequestMapping("/cat")
public class CatController {
@Resource
private CatInterface catInterface;
@RequestMapping("/save")
public String save(){
Cat cat = new Cat();
cat.setName("jack");
cat.setAge(3);
catInterface.save(cat);
return "save ok...";
}
@RequestMapping("/delete")
public String delete() {
catInterface.deleteById(1);
return "delete ok...";
}
@RequestMapping("/getAll")
public Iterable getAll(){
return catInterface.findAll();
}
}
四、Spring Bootを起動する
@SpringBootApplication
public class SpringBootJpaApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootJpaApplication.class, args);
}
}
Spring Bootプロジェクトを起動し、ページでContrllerクラスにアクセスする方法で対応するCRUD操作を実行できます.