成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

SpringBoot 實(shí)戰(zhàn) (十八) | 整合 MongoDB

QLQ / 3468人閱讀

摘要:前言如題,今天介紹下是如何整合的。存儲(chǔ)結(jié)構(gòu)如下男一個(gè)優(yōu)秀的廢人準(zhǔn)備工作創(chuàng)建一個(gè)名為的數(shù)據(jù)庫(kù),不會(huì)建的。層實(shí)現(xiàn)類添加學(xué)生信息根據(jù)刪除學(xué)生信息更新學(xué)生信息根據(jù)查詢學(xué)生信息查詢學(xué)生信息列表層測(cè)試結(jié)果測(cè)試已經(jīng)全部通過,這里僅展示了保存操作。

微信公眾號(hào):一個(gè)優(yōu)秀的廢人。如有問題,請(qǐng)后臺(tái)留言,反正我也不會(huì)聽。

前言

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

MongoDB 簡(jiǎn)介

MongoDB 是由 C++ 編寫的非關(guān)系型數(shù)據(jù)庫(kù),是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng),它將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值 (key=>value) 對(duì)組成。MongoDB 文檔類似于 JSON 對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組,非常靈活。存儲(chǔ)結(jié)構(gòu)如下:

{
    "studentId": "201311611405",
    "age":24,
    "gender":"男",
    "name":"一個(gè)優(yōu)秀的廢人"
}
準(zhǔn)備工作

SpringBoot 2.1.3 RELEASE

MongnDB 2.1.3 RELEASE

MongoDB 4.0

IDEA

JDK8

創(chuàng)建一個(gè)名為 test 的數(shù)據(jù)庫(kù),不會(huì)建的。參考菜鳥教程:

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

配置數(shù)據(jù)源
spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/test

以上是無密碼寫法,如果 MongoDB 設(shè)置了密碼應(yīng)這樣設(shè)置:

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
實(shí)體類
@Data
public class Student {

    @Id
    private String id;

    @NotNull
    private String studentId;

    private Integer age;

    private String name;

    private String gender;

}
dao 層

和 JPA 一樣,SpringBoot 同樣為開發(fā)者準(zhǔn)備了一套 Repository ,只需要繼承 MongoRepository 傳入實(shí)體類型以及主鍵類型即可。

@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();

}

實(shí)現(xiàn)類:

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentRepository studentRepository;

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

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

    /**
     * 更新學(xué)生信息
     * @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;
        }
    }

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

    /**
     * 查詢學(xué)生信息列表
     * @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();
    }

}
測(cè)試結(jié)果

Postman 測(cè)試已經(jīng)全部通過,這里僅展示了保存操作。

這里推薦一個(gè)數(shù)據(jù)庫(kù)可視化工具 Robo 3T 。下載地址:https://robomongo.org/download

完整代碼

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

如果覺得對(duì)你有幫助,請(qǐng)給個(gè) Star 再走唄,非常感謝。

后語

如果本文對(duì)你哪怕有一丁點(diǎn)幫助,請(qǐng)幫忙點(diǎn)好看。你的好看是我堅(jiān)持寫作的動(dòng)力。

另外,關(guān)注之后在發(fā)送 1024 可領(lǐng)取免費(fèi)學(xué)習(xí)資料。

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/73627.html

相關(guān)文章

  • SpringBoot 實(shí)戰(zhàn) (十八) | 整合 MongoDB

    摘要:前言如題,今天介紹下是如何整合的。存儲(chǔ)結(jié)構(gòu)如下男一個(gè)優(yōu)秀的廢人準(zhǔn)備工作創(chuàng)建一個(gè)名為的數(shù)據(jù)庫(kù),不會(huì)建的。層實(shí)現(xiàn)類添加學(xué)生信息根據(jù)刪除學(xué)生信息更新學(xué)生信息根據(jù)查詢學(xué)生信息查詢學(xué)生信息列表層測(cè)試結(jié)果測(cè)試已經(jīng)全部通過,這里僅展示了保存操作。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人。如有問題,請(qǐng)后臺(tái)留言,反正我也不會(huì)聽。 showImg(https://segmentfault.com/img/remote...

    jzzlee 評(píng)論0 收藏0
  • spring boot - 收藏集 - 掘金

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

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

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

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

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

    jaysun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<