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

資訊專欄INFORMATION COLUMN

SpringBoot 實戰 (十八) | 整合 MongoDB

jzzlee / 960人閱讀

摘要:前言如題,今天介紹下是如何整合的。存儲結構如下男一個優秀的廢人準備工作創建一個名為的數據庫,不會建的。層實現類添加學生信息根據刪除學生信息更新學生信息根據查詢學生信息查詢學生信息列表層測試結果測試已經全部通過,這里僅展示了保存操作。

微信公眾號:一個優秀的廢人。如有問題,請后臺留言,反正我也不會聽。

前言

如題,今天介紹下 SpringBoot 是如何整合 MongoDB 的。

MongoDB 簡介

MongoDB 是由 C++ 編寫的非關系型數據庫,是一個基于分布式文件存儲的開源數據庫系統,它將數據存儲為一個文檔,數據結構由鍵值 (key=>value) 對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數組及文檔數組,非常靈活。存儲結構如下:

{
    "studentId": "201311611405",
    "age":24,
    "gender":"男",
    "name":"一個優秀的廢人"
}
準備工作

SpringBoot 2.1.3 RELEASE

MongnDB 2.1.3 RELEASE

MongoDB 4.0

IDEA

JDK8

創建一個名為 test 的數據庫,不會建的。參考菜鳥教程:

http://www.runoob.com/mongodb...

配置數據源
spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/test

以上是無密碼寫法,如果 MongoDB 設置了密碼應這樣設置:

spring:
  data:
    mongodb:
      uri: mongodb://name:password@localhost:27017/test
pom 依賴配置


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



    org.springframework.boot
    spring-boot-starter-web



    org.projectlombok
    lombok
    true



    org.springframework.boot
    spring-boot-starter-test
    test
實體類
@Data
public class Student {

    @Id
    private String id;

    @NotNull
    private String studentId;

    private Integer age;

    private String name;

    private String gender;

}
dao 層

和 JPA 一樣,SpringBoot 同樣為開發者準備了一套 Repository ,只需要繼承 MongoRepository 傳入實體類型以及主鍵類型即可。

@Repository
public interface StudentRepository extends MongoRepository {
}
service 層
public interface StudentService {

    Student addStudent(Student student);

    void deleteStudent(String id);

    Student updateStudent(Student student);

    Student findStudentById(String id);

    List findAllStudent();

}

實現類:

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentRepository studentRepository;

    /**
     * 添加學生信息
     * @param student
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Student addStudent(Student student) {
        return studentRepository.save(student);
    }

    /**
     * 根據 id 刪除學生信息
     * @param id
     */
    @Override
    public void deleteStudent(String id) {
        studentRepository.deleteById(id);
    }

    /**
     * 更新學生信息
     * @param student
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Student updateStudent(Student student) {
        Student oldStudent = this.findStudentById(student.getId());
        if (oldStudent != null){
            oldStudent.setStudentId(student.getStudentId());
            oldStudent.setAge(student.getAge());
            oldStudent.setName(student.getName());
            oldStudent.setGender(student.getGender());
            return studentRepository.save(oldStudent);
        } else {
            return null;
        }
    }

    /**
     * 根據 id 查詢學生信息
     * @param id
     * @return
     */
    @Override
    public Student findStudentById(String id) {
        return studentRepository.findById(id).get();
    }

    /**
     * 查詢學生信息列表
     * @return
     */
    @Override
    public List findAllStudent() {
        return studentRepository.findAll();
    }
}
controller 層
@RestController
@RequestMapping("/student")
public class StudentController {

    @Autowired
    private StudentService studentService;

    @PostMapping("/add")
    public Student addStudent(@RequestBody Student student){
        return studentService.addStudent(student);
    }

    @PutMapping("/update")
    public Student updateStudent(@RequestBody Student student){
        return studentService.updateStudent(student);
    }

    @GetMapping("/{id}")
    public Student findStudentById(@PathVariable("id") String id){
        return studentService.findStudentById(id);
    }

    @DeleteMapping("/{id}")
    public void deleteStudentById(@PathVariable("id") String id){
        studentService.deleteStudent(id);
    }

    @GetMapping("/list")
    public List findAllStudent(){
        return studentService.findAllStudent();
    }

}
測試結果

Postman 測試已經全部通過,這里僅展示了保存操作。

這里推薦一個數據庫可視化工具 Robo 3T 。下載地址:https://robomongo.org/download

完整代碼

https://github.com/turoDog/De...

如果覺得對你有幫助,請給個 Star 再走唄,非常感謝。

后語

如果本文對你哪怕有一丁點幫助,請幫忙點好看。你的好看是我堅持寫作的動力。

另外,關注之后在發送 1024 可領取免費學習資料。

資料詳情請看這篇舊文:Python、C++、Java、Linux、Go、前端、算法資料分享

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19492.html

相關文章

  • SpringBoot 實戰 (十八) | 整合 MongoDB

    摘要:前言如題,今天介紹下是如何整合的。存儲結構如下男一個優秀的廢人準備工作創建一個名為的數據庫,不會建的。層實現類添加學生信息根據刪除學生信息更新學生信息根據查詢學生信息查詢學生信息列表層測試結果測試已經全部通過,這里僅展示了保存操作。 微信公眾號:一個優秀的廢人。如有問題,請后臺留言,反正我也不會聽。 showImg(https://segmentfault.com/img/remote...

    QLQ 評論0 收藏0
  • spring boot - 收藏集 - 掘金

    摘要:引入了新的環境和概要信息,是一種更揭秘與實戰六消息隊列篇掘金本文,講解如何集成,實現消息隊列。博客地址揭秘與實戰二數據緩存篇掘金本文,講解如何集成,實現緩存。 Spring Boot 揭秘與實戰(九) 應用監控篇 - HTTP 健康監控 - 掘金Health 信息是從 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring...

    rollback 評論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)

    摘要:在配置下上面啟動的配置數據庫名為賬號密碼也為。突出點是,即非阻塞的。四對象修改包里面的城市實體對象類。修改城市對象,代碼如下城市實體類城市編號省份編號城市名稱描述注解標記對應庫表的主鍵或者唯一標識符。 摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝! 這是泥瓦匠的第104篇原創 文章工程: JDK...

    Corwien 評論0 收藏0
  • SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb

    摘要:如果你想自定義一些查詢,比如根據來查詢,獲取根據來查詢,只需要定義一個方法即可。注意嚴格按照存入的的字段對應。測試在的應用程序,加入測試代碼。啟動程序,控制臺打印了測試通過。 這篇文章主要介紹springboot如何整合mongodb。 準備工作 安裝 MongoDB jdk 1.8 maven 3.0 idea 環境依賴 在pom文件引入spring-boot-starter-da...

    jaysun 評論0 收藏0

發表評論

0條評論

jzzlee

|高級講師

TA的文章

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