摘要:前言如題,今天介紹下是如何整合的。存儲(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/testpom 依賴配置
實(shí)體類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 同樣為開發(fā)者準(zhǔn)備了一套 Repository ,只需要繼承 MongoRepository 傳入實(shí)體類型以及主鍵類型即可。
@Repository public interface StudentRepository extends MongoRepositoryservice 層{ }
public interface StudentService { Student addStudent(Student student); void deleteStudent(String id); Student updateStudent(Student student); Student findStudentById(String id); ListfindAllStudent(); }
實(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 Listcontroller 層findAllStudent() { return studentRepository.findAll(); } }
@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測(cè)試結(jié)果findAllStudent(){ return studentService.findAllStudent(); } }
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
摘要:前言如題,今天介紹下是如何整合的。存儲(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...
摘要:引入了新的環(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...
摘要:在配置下上面啟動(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...
摘要:如果你想自定義一些查詢,比如根據(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...
閱讀 1088·2021-11-24 09:39
閱讀 1319·2021-11-18 13:18
閱讀 2462·2021-11-15 11:38
閱讀 1840·2021-09-26 09:47
閱讀 1641·2021-09-22 15:09
閱讀 1634·2021-09-03 10:29
閱讀 1522·2019-08-29 17:28
閱讀 2961·2019-08-29 16:30