整合
首先我們得使用springboot整合咱們的mongodb,第一步,當(dāng)然是引入依賴(lài)?yán)?/p>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<!--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配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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í)體類(lèi)所在的包 mapper-locations: classpath:/mapper/*.xml #這里是放sql語(yǔ)句的映射文件 |
緊接著呢,就是咱們的啟動(dòng)類(lèi)了(Application.class)需要添加注解讓它去掃描咱們的dao層。
代碼實(shí)現(xiàn):
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * @description 啟動(dòng)類(lèi) * @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)整合完成了,接下來(lái),創(chuàng)建一個(gè)類(lèi) StudentDao,用于測(cè)試
然后再StudentDao中引入MongoTemplate,它底層幫我們封裝好了對(duì)mondodb操作的代碼,簡(jiǎn)化了我們開(kāi)發(fā)時(shí)的操作,這樣開(kāi)發(fā)的時(shí)候我們有更多的時(shí)間去實(shí)現(xiàn)業(yè)務(wù)
1
2
|
@Autowired private MongoTemplate mongoTemplate; |
添加
寫(xiě)一個(gè)方法,添加一個(gè)學(xué)生,調(diào)用mongoTemplate中的save方法
1
2
3
4
5
6
7
8
|
/** * 添加學(xué)生 * @param student */ public boolean insert(Student student){ Student stu = mongoTemplate.save(student); return stu!= null ; } |
當(dāng)然在這里可以使用mongoTemplate自帶的insert方法,兩者效果相同
刪除
咱們也用一個(gè)案例來(lái)理解刪除
目標(biāo):根據(jù)名字刪除學(xué)生
實(shí)現(xiàn):
1
2
3
4
5
6
7
8
9
10
11
12
|
/** * 根據(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):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/** * 根據(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 ; } |
查詢(xún)
無(wú)參數(shù)的查詢(xún)所有
1
2
3
4
5
6
7
|
/** * 獲取所有學(xué)生 * @return */ public List<Student> findAll(){ return mongoTemplate.findAll(Student. class ); } |
根據(jù)條件查詢(xún)
目標(biāo):根據(jù)學(xué)生名稱(chēng)查詢(xún)學(xué)生列表
實(shí)現(xiàn):
1
2
3
4
5
6
7
8
9
10
11
|
/** * 根據(jù)學(xué)生名稱(chēng)查詢(xún)學(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)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/gloamer/article/details/119841704