日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java data jpa_Spring Data JPA(一)简介

發(fā)布時間:2023/12/10 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java data jpa_Spring Data JPA(一)简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spring Data JPA介紹

可以理解為JPA規(guī)范的再次封裝抽象,底層還是使用了Hibernate的JPA技術(shù)實現(xiàn),引用JPQL(Java Persistence Query Language)查詢語言,屬于Spring整個生態(tài)體系的一部分。隨著Spring Boot和Spring Cloud在市場上的流行,Spring Data JPA也逐漸進(jìn)入大家的視野,它們組成有機(jī)的整體,使用起來比較方便,加快了開發(fā)的效率,使開發(fā)者不需要關(guān)心和配置更多的東西,完全可以沉浸在Spring的完整生態(tài)標(biāo)準(zhǔn)實現(xiàn)下。JPA上手簡單,開發(fā)效率高,對對象的支持比較好,又有很大的靈活性,市場的認(rèn)可度越來越高。

JPA是Java Persistence API的簡稱,中文名為Java持久層API,是JDK 5.0注解或XML描述對象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實體對象持久化到數(shù)據(jù)庫中。

JPA包括以下3方面的內(nèi)容:

(1)一套API標(biāo)準(zhǔn)。在javax.persistence的包下面,用來操作實體對象,執(zhí)行CRUD操作,框架在后臺替代我們完成所有的事情,開發(fā)者從煩瑣的JDBC和SQL代碼中解脫出來。

(2)面向?qū)ο蟮牟樵冋Z言:Java Persistence QueryLanguage(JPQL)。這是持久化操作中很重要的一個方面,通過面向?qū)ο蠖敲嫦驍?shù)據(jù)庫的查詢語言查詢數(shù)據(jù),避免程序的SQL語句緊密耦合

(3)ORM(object/relational metadata)元數(shù)據(jù)的映射。JPA支持XML和JDK5.0注解兩種元數(shù)據(jù)的形式,元數(shù)據(jù)描述對象和表之間的映射關(guān)系,框架據(jù)此將實體對象持久化到數(shù)據(jù)庫表中。

Spring Data介紹

Spring? Data項目是從2010年發(fā)展起來的,從創(chuàng)立之初SpringData就想提供一個大家熟悉的、一致的、基于Spring的數(shù)據(jù)訪問編程模型,同時仍然保留底層數(shù)據(jù)存儲的特殊特性。它可以輕松地讓開發(fā)者使用數(shù)據(jù)訪問技術(shù),包括關(guān)系數(shù)據(jù)庫、非關(guān)系數(shù)據(jù)庫(NoSQL)和基于云的數(shù)據(jù)服務(wù)。

Spring Data Common是Spring Data所有模塊的公用部分,該項目提供跨Spring數(shù)據(jù)項目的共享基礎(chǔ)設(shè)施。它包含了技術(shù)中立的庫接口以及一個堅持java類的元數(shù)據(jù)模型。

Spring Data不僅對傳統(tǒng)的數(shù)據(jù)庫訪問技術(shù)JDBC、Hibernate、JDO、TopLick、JPA、Mybitas做了很好的支持、擴(kuò)展、抽象、提供方便的API,還對NoSQL等非關(guān)系數(shù)據(jù)做了很好的支持,包括MongoDB、Redis、Apache Solr等

Spring Data的子項目

Spring Data操作的主要特性

Spring Data項目旨在為大家提供一種通用的編碼模式。數(shù)據(jù)訪問對象實現(xiàn)了對物理數(shù)據(jù)層的抽象,為編寫查詢方法提供了方便。通過對象映射,實現(xiàn)域?qū)ο蠛统掷m(xù)化存儲之間的轉(zhuǎn)換,而模板提供的是對底層存儲實體的訪問實現(xiàn)。如圖1-4所示。操作上主要有如下特征:

提供模板操作,如Spring Data Redis和Spring Data Riak。

強(qiáng)大的Repository和定制的數(shù)據(jù)存儲對象的抽象映射。

對數(shù)據(jù)訪問對象的支持(Auting等)。

Spring Data JPA的主要類及結(jié)構(gòu)圖

七個Repository接口:

1.Repository

2.CrudRepository

3.PagingAndSortingRepository

4.QueryByExampleExecutor

5.JpaRepository

6.JpaSpeccificationExecutor

7.QueryDslPredicateExecutor

兩個實現(xiàn)類:

1.SimpleJpaRepository

2.QueryDslJpaRepository

關(guān)系結(jié)構(gòu)圖如圖1-5所示。

MySQL的快速開發(fā)實例

1.創(chuàng)建表

CREATE TABLE `user` (

`id` int(11) NOT NULL,

`name` varchar(255) DEFAULT NULL,

`email` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.創(chuàng)建springboot項目

配置jpa、mysql、web依賴

org.springframework.boot

spring-boot-starter-data-jpa

org.springframework.boot

spring-boot-starter-web

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-test

test

org.projectlombok

lombok

3.配置application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/db_jpa?characterEncoding=utf8&useSSL=false&serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=root

4.創(chuàng)建實體類

@Entity

@Data

public class User {

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

private String name;

private String email;

}

5.創(chuàng)建Repository

public interface UserRepository extends CrudRepository{

}

6.創(chuàng)建Controller

@RestController

public class UserController {

@Autowired

private UserRepository userRepository;

@GetMapping("/add")

public User addUser(@RequestParam String name,@RequestParam String email){

User user=new User();

user.setName(name);

user.setEmail(email);

return userRepository.save(user);

}

@GetMapping("/get")

public Iterable getAll(){

return userRepository.findAll();

}

}

7.運(yùn)行main方法

提示:org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dia

問題:原來是Hibernate SQL方言沒有設(shè)置導(dǎo)致的,在properties文件中增加下面這行

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect

總結(jié)

以上是生活随笔為你收集整理的java data jpa_Spring Data JPA(一)简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。