国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot學(xué)習(xí)筆記(二)簡單CRUD實(shí)現(xiàn)

legendaryedu / 1288人閱讀

摘要:用于管理數(shù)據(jù)實(shí)體及持久化相關(guān)的處理,則是整個(gè)業(yè)務(wù)的核心。首先,對于的每個(gè)接口,我們在中定義對應(yīng)請求接收方法說明注解,表明這個(gè)專門用于服務(wù),返回值不是傳統(tǒng)的數(shù)據(jù)。對于來講,僅僅是一個(gè)簡單的繼承了的接口。

開發(fā)配置

依賴包準(zhǔn)備

這里選用mysql作為數(shù)據(jù)庫,需要用到的包有三個(gè),需要將相關(guān)依賴寫入pom.xml,如下:

  
    org.springframework.boot
    spring-boot-starter-jdbc
  
    
  
    mysql
    mysql-connector-java
  

  
    org.springframework.boot
    spring-boot-starter-data-jpa
  

數(shù)據(jù)庫連接設(shè)定

在src/main/resources/application.properties文件中,加入以下配置信息:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.tomcat.max-idle=10
spring.datasource.tomcat.max-wait=10000
spring.datasource.tomcat.min-idle=5
spring.datasource.tomcat.initial-size=5

其中test是數(shù)據(jù)庫名稱,username和password可自行設(shè)置和修改

實(shí)體定義

我們將要操作的實(shí)體很簡單,只有一個(gè)id屬性和一個(gè)name屬性。定義如下:

@Entity
@Table(name="T_USER")
public class User {

    /**
     * 用戶ID
     */
    @Id
    @GeneratedValue
    private int id;
    
    /**
     * 用戶名
     */
    private String name;

    // GETTER和SETTER此處省略...
}

<說明>

@Entity注解,表明了這是一個(gè)Entity,可以使用默認(rèn)的ORM規(guī)則,即class名即為要更新的數(shù)據(jù)表名

@Table注解,可以指定這個(gè)Entity要更新的數(shù)據(jù)表名,也不使用默認(rèn)的ORM規(guī)則。

@Id注解,表明了這個(gè)數(shù)據(jù)表的主鍵ID,這個(gè)主鍵可以是AUTO_INCREMENT類型的數(shù)據(jù)。

備忘
在測試中,此處的id類型使用Integer會報(bào)錯(cuò),原因尚不清楚,使用int則無問題。

路由設(shè)置

以簡單的User對象為例,我們來實(shí)現(xiàn)一個(gè)簡(chou)單(lou)的的CRUD處理

Restful風(fēng)格

對于簡單的增刪改查功能,一般的restful接口定義如下:

GET    /user        # 取得user列表
POST   /user        # 提交user
PUT    /user        # 更新user
PATCH  /user        # 更新user(個(gè)別屬性)
DELETE /user/:id    # 刪除user

路由設(shè)置

對于純數(shù)據(jù)的Java后端架構(gòu)來講,MVC中少了View,但M和C仍是必不可少的。Model用于管理數(shù)據(jù)實(shí)體及持久化相關(guān)的處理,Controller則是整個(gè)業(yè)務(wù)的核心。

首先,對于user的每個(gè)接口,我們在controller中定義對應(yīng)請求接收方法:

@RestController
@RequestMapping("/user")
public class UserController {
    
    @Autowired
    private UserService userService;

    @GetMapping("")
    public ResponseEntity getList() {
        return new ResponseEntity(userService.getUserList(), HttpStatus.OK);
    }
    
    @PostMapping("")
    public ResponseEntity create(@RequestBody User user) {
        return new ResponseEntity(userService.save(user), HttpStatus.CREATED);
    }

    @PatchMapping("")
    public ResponseEntity update(@RequestBody User user) {
        return new ResponseEntity(userService.save(user), HttpStatus.ACCEPTED);
    }
    
    @DeleteMapping("/{id}")
    public ResponseEntity remove(@PathVariable("id") int id) {
        userService.remove(id);
        return new ResponseEntity(HttpStatus.ACCEPTED);
    }
}

<說明>

@RestController注解,表明這個(gè)controller專門用于Restful服務(wù),返回值不是傳統(tǒng)的WEB數(shù)據(jù)。

@RequestMapping注解,表明訪問的相對路徑為“/user"

@GetMapping、@PostMapping、@PatchMapping和@DeleteMapping分別對應(yīng)了GET、POST、PATCH和DELETE請求,這四個(gè)方法將分別接收對應(yīng)訪問路徑上對應(yīng)方法的HTTP請求。它們也可用@RequestMapping(value="", method=RequestMethod.POST(或者GET、PATCH等)來替代。

@PathVariable用于取得訪問路徑中的參數(shù)

ResponseEntity用于返回處理結(jié)果與錯(cuò)誤碼

上面通過UserService的調(diào)用,實(shí)現(xiàn)了user的CRUD操作。Spring通過@Autowired注解,會自動創(chuàng)建UserService的實(shí)例。

CRUD操作

通過UserService的相關(guān)操作,我們可以很容易的對user表進(jìn)行CRUD操作。代碼如下:

@Service
public class UserService {

    @Autowired
    private UserRepository userRepo;
    
    public Iterable getUserList() {
        return userRepo.findAll();
    }
    
    public User save(User user) {
        return userRepo.save(user);
    }
    
    public void remove(int id) {
        userRepo.delete(id);
    }
}

<說明>

通過@Service注解,Spring會自動實(shí)例化到UserController中

Service中注解了@Autowired的實(shí)例userRepo,實(shí)際上是繼承了CrudRepository的一個(gè)接口。Repository在Spring的概念體系中是類似于傳統(tǒng)DAO的實(shí)體,一個(gè)Repository對應(yīng)一個(gè)數(shù)據(jù)表的操作。

UserService中使用的findAll、save和delete方法,均是CrudRepository中預(yù)定義的方法。

對于UserRepository來講,僅僅是一個(gè)簡單的繼承了CrudRepository的接口。代碼如下:

public interface UserRepository extends CrudRepository {}

關(guān)于Repository的說明,可以看這篇文章pring Boot學(xué)習(xí)筆記(三)Repository的使用

結(jié)果確認(rèn)

簡單接口測試可使用POSTMAN進(jìn)行,結(jié)果如下:

取得用戶列表

插入2條數(shù)據(jù)

取得用戶列表

更新用戶

刪除用戶

取得用戶列表

待改進(jìn)事項(xiàng)

目前只是實(shí)現(xiàn)了一個(gè)簡單的CRUD操作,就這個(gè)簡單流程來講,以下幾點(diǎn)尚欠缺:

返回值需要有結(jié)構(gòu)化的設(shè)計(jì)

分頁和排序功能也有欠缺。

缺少自動化測試

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/70752.html

相關(guān)文章

  • Spring Boot學(xué)習(xí)筆記(六)結(jié)合MyBatis實(shí)現(xiàn)較為復(fù)雜的RESTful API

    摘要:前兩篇已經(jīng)構(gòu)建了標(biāo)準(zhǔn)工程實(shí)例,也整合了實(shí)現(xiàn)了簡單數(shù)據(jù)庫訪問,本篇主要更深入的學(xué)習(xí)下,實(shí)現(xiàn)較為完整的數(shù)據(jù)庫的標(biāo)準(zhǔn)服務(wù)。到這里,最復(fù)雜的數(shù)據(jù)訪問基本就算編寫完了。 前兩篇已經(jīng)構(gòu)建了RESTful API標(biāo)準(zhǔn)工程實(shí)例,也整合了MyBatis實(shí)現(xiàn)了簡單數(shù)據(jù)庫訪問,本篇主要更深入的學(xué)習(xí)下,實(shí)現(xiàn)較為完整的數(shù)據(jù)庫CRUD的標(biāo)準(zhǔn)服務(wù)。 首先看下要實(shí)現(xiàn)的效果吧,完成下面截圖部分的API,除了CRUD之外...

    CntChen 評論0 收藏0
  • Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強(qiáng))

    摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...

    Scorpion 評論0 收藏0
  • Spring Boot學(xué)習(xí)筆記(七)通用mapper,代碼生成,分頁組件接入

    摘要:代碼自動生成底層服務(wù)有很多通用的,利用代碼生成最好不過了,這里作者將代碼生成放在中的,避免與正式代碼沖突。主要通過來實(shí)現(xiàn),項(xiàng)目中的模板文件可以自行定義。相互學(xué)習(xí),共同進(jìn)步 從零開始學(xué)習(xí)Spring Boot也有幾天時(shí)間了,項(xiàng)目已經(jīng)不允許我這么慢慢學(xué)習(xí)了,急需底層變現(xiàn)實(shí)現(xiàn)一套簡單的Restful API用于業(yè)務(wù)支撐。 于是在GitHub上找到了一個(gè)不錯(cuò)的demo,直接看demo搭建自己的...

    neroneroffy 評論0 收藏0
  • Spring Boot 2.x 系列教程:WebFlux 系列教程大綱(一)

    摘要:使用則需要及以上版本。開發(fā)使用框架七系列教程目錄系列教程大綱快速入門實(shí)踐實(shí)踐整合整合中和實(shí)踐整合中實(shí)現(xiàn)緩存中實(shí)現(xiàn)通信集成測試及部署實(shí)戰(zhàn)圖書管理系統(tǒng) WebFlux 系列教程大綱 一、背景 大家都知道,Spring Framework 是 Java/Spring 應(yīng)用程序跨平臺開發(fā)框架,也是 Java EE(Java Enterprise Edition) 輕量級框架,其 Spring ...

    jone5679 評論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 快速入門(

    摘要:響應(yīng)式編程是基于異步和事件驅(qū)動的非阻塞程序,只是垂直通過在內(nèi)啟動少量線程擴(kuò)展,而不是水平通過集群擴(kuò)展。三特性常用的生產(chǎn)的特性如下響應(yīng)式編程模型適用性內(nèi)嵌容器組件還有對日志消息測試及擴(kuò)展等支持。 摘要: 原創(chuàng)出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關(guān)注和轉(zhuǎn)載,保留摘要,謝謝! 02:WebFlux 快速入門實(shí)踐 文章工程: JDK...

    gaara 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<