(二):使用 Spring Data JPA 實現(xiàn)數(shù)據(jù)讀取

前文:(一):搭建 Spring Boot 項目置尔,并配置數(shù)據(jù)庫連接

接下來我們可以實現(xiàn)第一個讀取數(shù)據(jù)的服務了尘奏。

定義實體類 - POJO

Category 這個接口為例,要讀取CATEGORY表的數(shù)據(jù)困檩,那么首先要有一個實體類與該表做映射。實際上就是Java POJO類叁征,每一個該類的對象谁榜,就代表數(shù)據(jù)庫表里的一行。

Category.java

@Entity
@Table(name = "CATEGORY")
public class Category implements Serializable {
  private static final long serialVersionUID = 1L;

  @Id
  @Column(name = "CATEGORY_ID")
  private Integer categoryId;

  @Column(name = "CATEGORY_NM")
  private String categoryNm;

  @Column(name = "CREATE_ID")
  private String createId;

  @Column(name = "UPDATE_ID")
  private String updateId;

  @Column(name = "CREATE_TS")
  private Timestamp createTs;

  @Column(name = "UPDATE_TS")
  private Timestamp updateTs;
  
  // No-Arg Constructor
  // Getter and Setter
}

其中用到的一些Annotation:

@Entity - 標注在類名上狼犯,且該類需要有一個無參構(gòu)造器和一個主鍵(實體類不可以是final的)參考:JPA規(guī)范-Entities
@Table - 指定該類對應的數(shù)據(jù)庫表名余寥,以及所在schema(若有的話)
@Id - 標識該字段為主鍵
@Column - 標識該字段對應在數(shù)據(jù)庫表中某一個列的信息,如對應的名稱 name = "CATEGORY_ID"

還有很多Annotation這里沒有用到悯森,可以參考 Defining JPA Entities 有更詳細的說明宋舷。


獲取數(shù)據(jù) - Repository

在Spring Data中,Repository<T, ID>是一個空的"標記"接口瓢姻,它的子接口如CrudRepository<T, ID>JpaRepository<T, ID>都提供了一些基本的CRUD操作方法祝蝠,我們只需要新建一個接口進行繼承,并提供實體類ID類型,就可以使用那些方法绎狭。

這里我新建了一個CategoryRepository并繼承JpaRepository<T, ID>接口细溅,類型參數(shù)分別是<Category, Integer>

CategoryRepository.java

public interface CategoryRepository extends JpaRepository<Category, Integer> {
}

這樣便可以使用諸如List<T> findAll();,這樣的基本方法坟岔。


業(yè)務邏輯 (實際干活層) - Service

在定義好對應的Repository后,就可以在Service層注入CategoryRepository摔桦。調(diào)用時可以看到,有很多基本方法都可以調(diào)用,它們都來自于接口CrudRepositoryJpaRepository

CategoryService.java

@Service
public class CategoryService {
  @Autowired
  private CategoryRepository categoryRepository;

  public List<Category> getAll() {
    return categoryRepository.findAll();
  }
}

控制器 (對外接口層) - Controller

這層很簡單鸥滨,寫好要對外開放的接口即可舍败,這里參考了RESTful接口的設計。

CategoryController.java

@RestController
@RequestMapping("/category")
public class CategoryController {
  @Autowired
  private CategoryService categoryService;

  @GetMapping
  public List<Category> getAll() {
    return categoryService.getAll();
  }
}

關(guān)于RESTful的設計兄世,可以參考 RESTful API 設計指南啼辣。簡而言之的理解,我認為就是使用HTTP動詞御滩,URL作為資源鸥拧。比如GET /category,即獲取所有的category數(shù)據(jù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末削解,一起剝皮案震驚了整個濱河市富弦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌氛驮,老刑警劉巖腕柜,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異矫废,居然都是意外死亡盏缤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門蓖扑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來唉铜,“玉大人,你說我怎么就攤上這事律杠〈蛎” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵俩功,是天一觀的道長幻枉。 經(jīng)常有香客問我,道長诡蜓,這世上最難降的妖魔是什么熬甫? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮蔓罚,結(jié)果婚禮上椿肩,老公的妹妹穿的比我還像新娘瞻颂。我一直安慰自己,他們只是感情好郑象,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布贡这。 她就那樣靜靜地躺著,像睡著了一般厂榛。 火紅的嫁衣襯著肌膚如雪盖矫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天击奶,我揣著相機與錄音辈双,去河邊找鬼。 笑死柜砾,一個胖子當著我的面吹牛湃望,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痰驱,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼证芭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了担映?” 一聲冷哼從身側(cè)響起檩帐,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎另萤,沒想到半個月后湃密,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡四敞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年泛源,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忿危。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡达箍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出铺厨,到底是詐尸還是另有隱情缎玫,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布解滓,位于F島的核電站赃磨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洼裤。R本人自食惡果不足惜邻辉,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧值骇,春花似錦莹菱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至使碾,卻和暖如春蜜徽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背部逮。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工娜汁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嫂易,地道東北人兄朋。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像怜械,于是被迫代替她去往敵國和親颅和。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

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