springboot整合mongodb並實現crud步驟詳解
整合
首先我們得使用springboot整合咱們的mongodb,第一步,當然是引入依賴啦
<!--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數據源--> <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數據源 mybatis: type-aliases-package: com.mjs.common.pojo #這裡是實體類所在的包 mapper-locations: classpath:/mapper/*.xml #這裡是放sql語句的映射文件
緊接著呢,就是咱們的啟動類瞭(Application.class)需要添加註解讓它去掃描咱們的dao層。
代碼實現:
/** * @description 啟動類 * @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
到這裡咱們就已經整合完成瞭,接下來,創建一個類 StudentDao,用於測試
然後再StudentDao中引入MongoTemplate,它底層幫我們封裝好瞭對mondodb操作的代碼,簡化瞭我們開發時的操作,這樣開發的時候我們有更多的時間去實現業務
@Autowired private MongoTemplate mongoTemplate;
添加
寫一個方法,添加一個學生,調用mongoTemplate中的save方法
/** * 添加學生 * @param student */ public boolean insert(Student student){ Student stu = mongoTemplate.save(student); return stu!=null; }
當然在這裡可以使用mongoTemplate自帶的insert方法,兩者效果相同
刪除
咱們也用一個案例來理解刪除
目標:根據名字刪除學生
實現:
/** * 根據學生姓名刪除學生 * @param name * @return */ public boolean deleteByName(String name){ //添加約束 Query query =new Query(Criteria.where("name").is(name)); //根據條件刪除學生,並返回結果 DeleteResult result = mongoTemplate.remove(query, Student.class); return result.getDeletedCount()>0; }
其他條件可以根據該案例,舉一反三
修改
目標:根據id修改學生信息
實現:
/** * 根據ID修改學生信息 * @param student * @return */ public boolean updateStu(Student student){ //添加約束 Query query =new Query(Criteria.where("id").is(student.getId())); //設置要修改的值 Update update=new Update(); update.set("age",student.getAge()); update.set("sex",student.getAge()); //修改並返回結果 UpdateResult updateResult = mongoTemplate.updateFirst(query, update, Student.class); return updateResult.getMatchedCount()>0; }
查詢
無參數的查詢所有
/** * 獲取所有學生 * @return */ public List<Student> findAll(){ return mongoTemplate.findAll(Student.class); }
根據條件查詢
目標:根據學生名稱查詢學生列表
實現:
/** * 根據學生名稱查詢學生列表 * @param name * @return */ public List<Student> findByName(String name){ //添加約束 Query query=new Query(Criteria.where("name").is(name)); //返回結果 return mongoTemplate.find(query,Student.class); }
到此這篇關於springboot整合mongodb並實現crud的文章就介紹到這瞭,更多相關springboot整合mongodb內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SpringBoot整合Mongodb實現增刪查改的方法
- SpringBoot整合MongoDB的實現步驟
- SpringBoot輕松整合MongoDB的全過程記錄
- 詳解SpringBoot Mongo 自增長ID有序規則
- spring data 連接mongodb的兩種方式