springboot整合mongodb并實(shí)現(xiàn)crud步驟詳解
整合
首先我們得使用springboot整合咱們的mongodb,第一步,當(dāng)然是引入依賴?yán)?/p>
<!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.7</version> </dependency> <!--druid數(shù)據(jù)源--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency>
applicaton.yml配置
spring: data: mongodb: #uri: mongodb://localhost:27017/test host: 127.0.0.1 port: 27017 username: password: database: test datasource: type: com.alibaba.druid.pool.DruidDataSource #druid數(shù)據(jù)源 mybatis: type-aliases-package: com.mjs.common.pojo #這里是實(shí)體類所在的包 mapper-locations: classpath:/mapper/*.xml #這里是放sql語句的映射文件
緊接著呢,就是咱們的啟動(dòng)類了(Application.class)需要添加注解讓它去掃描咱們的dao層。
代碼實(shí)現(xiàn):
/** * @description 啟動(dòng)類 * @author shenwang * @version 1.0 * @date 2021/8/20 10:37 */ @SpringBootApplication(exclude= {DataSourceAutoConfiguration.class}) @MapperScan(basePackages = "com.mjs.dao") public class MJSagentApplication { public static void main(String[] args) { SpringApplication.run(MJSagentApplication.class,args); } }
crud
到這里咱們就已經(jīng)整合完成了,接下來,創(chuàng)建一個(gè)類 StudentDao,用于測試
然后再StudentDao中引入MongoTemplate,它底層幫我們封裝好了對mondodb操作的代碼,簡化了我們開發(fā)時(shí)的操作,這樣開發(fā)的時(shí)候我們有更多的時(shí)間去實(shí)現(xiàn)業(yè)務(wù)
@Autowired private MongoTemplate mongoTemplate;
添加
寫一個(gè)方法,添加一個(gè)學(xué)生,調(diào)用mongoTemplate中的save方法
/** * 添加學(xué)生 * @param student */ public boolean insert(Student student){ Student stu = mongoTemplate.save(student); return stu!=null; }
當(dāng)然在這里可以使用mongoTemplate自帶的insert方法,兩者效果相同
刪除
咱們也用一個(gè)案例來理解刪除
目標(biāo):根據(jù)名字刪除學(xué)生
實(shí)現(xiàn):
/** * 根據(jù)學(xué)生姓名刪除學(xué)生 * @param name * @return */ public boolean deleteByName(String name){ //添加約束 Query query =new Query(Criteria.where("name").is(name)); //根據(jù)條件刪除學(xué)生,并返回結(jié)果 DeleteResult result = mongoTemplate.remove(query, Student.class); return result.getDeletedCount()>0; }
其他條件可以根據(jù)該案例,舉一反三
修改
目標(biāo):根據(jù)id修改學(xué)生信息
實(shí)現(xiàn):
/** * 根據(jù)ID修改學(xué)生信息 * @param student * @return */ public boolean updateStu(Student student){ //添加約束 Query query =new Query(Criteria.where("id").is(student.getId())); //設(shè)置要修改的值 Update update=new Update(); update.set("age",student.getAge()); update.set("sex",student.getAge()); //修改并返回結(jié)果 UpdateResult updateResult = mongoTemplate.updateFirst(query, update, Student.class); return updateResult.getMatchedCount()>0; }
查詢
無參數(shù)的查詢所有
/** * 獲取所有學(xué)生 * @return */ public List<Student> findAll(){ return mongoTemplate.findAll(Student.class); }
根據(jù)條件查詢
目標(biāo):根據(jù)學(xué)生名稱查詢學(xué)生列表
實(shí)現(xiàn):
/** * 根據(jù)學(xué)生名稱查詢學(xué)生列表 * @param name * @return */ public List<Student> findByName(String name){ //添加約束 Query query=new Query(Criteria.where("name").is(name)); //返回結(jié)果 return mongoTemplate.find(query,Student.class); }
到此這篇關(guān)于springboot整合mongodb并實(shí)現(xiàn)crud的文章就介紹到這了,更多相關(guān)springboot整合mongodb內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用HttpSessionListener監(jiān)聽器實(shí)戰(zhàn)
這篇文章主要介紹了使用HttpSessionListener監(jiān)聽器實(shí)戰(zhàn),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03PowerJob的AbstractScriptProcessor實(shí)現(xiàn)類工作流程源碼解讀
這篇文章主要為大家介紹了PowerJob的AbstractScriptProcessor源碼流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01JAVA多線程進(jìn)階方式(Runnable接口的講解和運(yùn)用)
這篇文章主要介紹了JAVA多線程進(jìn)階方式(Runnable接口的講解和運(yùn)用),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Java網(wǎng)絡(luò)編程基礎(chǔ)教程之Socket入門實(shí)例
這篇文章主要介紹了Java網(wǎng)絡(luò)編程基礎(chǔ)教程之Socket入門實(shí)例,本文講解了創(chuàng)建Socket、Socket發(fā)送數(shù)據(jù)、Socket讀取數(shù)據(jù)、關(guān)閉Socket等內(nèi)容,都是最基礎(chǔ)的知識(shí)點(diǎn),需要的朋友可以參考下2014-09-09Java中使用DOM4J生成xml文件并解析xml文件的操作
這篇文章主要介紹了Java中使用DOM4J來生成xml文件和解析xml文件的操作,今天通過代碼給大家展示了解析xml文件和生成xml文件的方法,需要的朋友可以參考下2021-09-09Spring?IOC中對象的創(chuàng)建、策略及銷毀時(shí)機(jī)和生命周期詳解
這篇文章主要介紹了Spring?IOC中對象的創(chuàng)建、策略及銷毀時(shí)機(jī)和生命周期詳解,Spring默認(rèn)使用類的空參構(gòu)造方法創(chuàng)建bean,假如類沒有空參構(gòu)造方法,將無法完成bean的創(chuàng)建,需要的朋友可以參考下2023-08-08