spring-data-jpa簡介和springboot整合spring-data-jpa

bingo

spring-data-jpa簡介和springboot整合spring-data-jpa

在我們的項(xiàng)目開發(fā)中,數(shù)據(jù)庫的訪問及存儲都是最為核心的部分,SpringBoot為我們提供了多種數(shù)據(jù)庫來做數(shù)據(jù)的存儲及讀取。目前企業(yè)開發(fā)中應(yīng)用最為廣泛的數(shù)據(jù)庫有问拘,關(guān)系型數(shù)據(jù)庫MySQL丐吓,oracle娄徊,sqlserver瀑罗,非關(guān)系型數(shù)據(jù)庫redis胸嘴,mongodb等。
本章將通過使用SpringBoot訪問MySQL結(jié)合SpringDataJPA完成CRUD(Create,Read,Update,Delete)簡單操作斩祭。

一:什么是JPA

JPA(Java Persistence API)是一種Java持久化解決方案劣像,負(fù)責(zé)把數(shù)據(jù)保存到數(shù)據(jù)庫中,實(shí)際上它是一種Java提供的一種標(biāo)準(zhǔn)摧玫、規(guī)范耳奕。而不是一種實(shí)現(xiàn)技術(shù)。JPA屬于重量級的诬像,因?yàn)樗枰\(yùn)行在JAVA EE容器中屋群,而Spring-Data-Jpa 提供了輕量級的實(shí)現(xiàn),在任何Servlet容器中都能運(yùn)行坏挠。
Spring-Data-Jpa底層使用的是Hibernate的JPA技術(shù)實(shí)現(xiàn)芍躏。——Hibernate和Mybatis在ORM實(shí)現(xiàn)上的區(qū)別

二:什么是spring-data-jpa

Spring-Data是Spring家
族一個(gè)用于簡化數(shù)據(jù)庫訪問,并且支持云服務(wù)的開源框架降狠,主要目標(biāo)是使訪問數(shù)據(jù)庫更便捷对竣,Spring-Data包含多個(gè)子項(xiàng)目,Srping-Data-Jpa是其中之一榜配,還包括Spring-Data-Redis,Spring-Data-MongoDb等

三:springboot整合spring-data-jpa

  1. 添加mysql支持
<!--引入MySQL的依賴關(guān)系-->
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <scope>runtime</scope>
</dependency>
  1. 添加JPA依賴支持
<!--引入JPA的依賴關(guān)系-->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
  1. 新建數(shù)據(jù)庫和application配置
-新建數(shù)據(jù)庫
create database is not exists data_jpa default charset utf8 collate utf8_general_ci;
grant all privileges on data_jpa.* to database-user@'localhost';
flush privileges;
-配置spring-boot application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/data_jpa?characterEncoding=utf-8
    username: database-name
    password: your password
    driver-class-name: com.mysql.jdbc.Driver
  freemarker:
    cache: false
  #jpa配置
  jpa:
    database: mysql
    show-sql: true  
  1. 生成數(shù)據(jù)表實(shí)體類
Intellij IDEA可以通過添加JPA插件來生成數(shù)據(jù)庫表對象否纬。

-添加Project-Structure Modules中JPA的支持。 
Modules添加JPA支持

找到窗口中Persistence視圖

數(shù)據(jù)庫映射和生成實(shí)體對象

生成的實(shí)體類

@Entity
@Table(name = "t_user", schema = "data_jpa", catalog = "")
public class TUserEntity {
    private int tId;
    private String tName;
    private byte tAge;
    private String tAddress;

    @Id
    @Column(name = "t_id")
    public int gettId() {
        return tId;
    }

    public void settId(int tId) {
        this.tId = tId;
    }
    ...
}
  1. 創(chuàng)建Model的JPA接口
package cn.orcish.springdatajpademo.jpa;
import cn.orcish.springdatajpademo.model.TUserEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.io.Serializable;

public interface UserJPA extends JpaRepository<TUserEntity,Long>,JpaSpecificationExecutor<TUserEntity>,Serializable {
}

6)創(chuàng)建Controller

@RestController
@RequestMapping(value = "/user")
public class JPAController {

    @Autowired
    private UserJPA userJPA;

    @RequestMapping(value="/save",method= RequestMethod.POST)
    public TUserEntity save(TUserEntity user){
        return userJPA.save(user);
    }

    @RequestMapping(value = "/findAll",method = RequestMethod.GET)
    public List<TUserEntity> list(){
        return userJPA.findAll();
    }

    @RequestMapping("/delete")
    public List<TUserEntity> delete(Long id){
        userJPA.deleteById(id);
        return userJPA.findAll();
    }
}
  1. 請求測試
Intellij IDEA 提供了一個(gè)Rest Client工具對接口進(jìn)行測試蛋褥,當(dāng)然也可以使用PostMan,這里介紹下Rest Client的安裝和使用临燃。
  • file->Settings->Plugins搜索Rest Client,


    安裝Rest Client

    使用

    成功返回
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市烙心,隨后出現(xiàn)的幾起案子膜廊,更是在濱河造成了極大的恐慌,老刑警劉巖弃理,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溃论,死亡現(xiàn)場離奇詭異,居然都是意外死亡痘昌,警方通過查閱死者的電腦和手機(jī)钥勋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辆苔,“玉大人算灸,你說我怎么就攤上這事∽て。” “怎么了菲驴?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骑冗。 經(jīng)常有香客問我赊瞬,道長先煎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任巧涧,我火速辦了婚禮薯蝎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谤绳。我一直安慰自己占锯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布缩筛。 她就那樣靜靜地躺著消略,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞎抛。 梳的紋絲不亂的頭發(fā)上艺演,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音婿失,去河邊找鬼钞艇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛豪硅,可吹牛的內(nèi)容都是我干的哩照。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼懒浮,長吁一口氣:“原來是場噩夢啊……” “哼飘弧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎呢灶,沒想到半個(gè)月后自阱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體技掏,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柱彻。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖餐胀,靈堂內(nèi)的尸體忽然破棺而出哟楷,到底是詐尸還是另有隱情,我是刑警寧澤否灾,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布卖擅,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惩阶。R本人自食惡果不足惜挎狸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望琳猫。 院中可真熱鬧伟叛,春花似錦私痹、人聲如沸脐嫂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽账千。三九已至,卻和暖如春暗膜,著一層夾襖步出監(jiān)牢的瞬間匀奏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工学搜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娃善,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓瑞佩,卻偏偏與公主長得像聚磺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子炬丸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,827評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理瘫寝,服務(wù)發(fā)現(xiàn),斷路器稠炬,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 原文鏈接:https://docs.spring.io/spring-boot/docs/1.4.x/refere...
    pseudo_niaonao閱讀 4,702評論 0 9
  • 幸福需要教育焕阿,教育也需要幸福。教育的根本指向乃是啟迪首启、培育個(gè)體生命存在的尊嚴(yán)與幸福暮屡。教育就是要引導(dǎo)人追求幸福的健康...
    耕耘三尺有天地閱讀 1,358評論 0 3
  • 爸爸說寶寶的頭發(fā)有種酸味,可能是用了他的防脫洗發(fā)水毅桃。寶寶說沒有褒纲,我根本不知道那個(gè)東西是什么,也不知道那個(gè)東西在哪里...
    荒島黎明7809閱讀 105評論 0 0