版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lh87270202/article/details/84028001
前言
第一篇入门文章简单介绍了一下,mongodb图形化管理工具、常用shell命令和spring boot中jpa对mongodb的操作,本次介绍一下mybatis对mongodb的操作
1、依赖
<!-- mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2、启动类
启动类上添加对EnableMongoRepositories
注解
@EnableMongoRepositories("com.clockbone.mongodb")
public class ApplicationBoot {
public static void main(String[] args) throws Exception {
SpringApplication.run(ApplicationBoot.class, args);
}
}
3、entity类
entity类中直接用注解来定义mongodb集合名,entity中的属性就对应mongodb的属性,mongodb中字段增减变化,会随entity中的属性增减变化,mongodb不用手动建立集合,新增的时候自动建立这个集合。即使查询操在前也没不会报错,只是返回的结果集为空。
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
@Setter
@Getter
@ToString
@Builder
@Document(collection = "user_info")
@AllArgsConstructor
@NoArgsConstructor
public class UserInfo {
private String userName;
private String userId;
private String sex;
private String age;
private String job;
private String address;
private String idcard;
private String idcardType;
private String mobileNo;
private String homeTel;
private String post;
private String asset;
private Date createTime;
}
4、mongodb Repositories方法
和mybatis操作mysql数据不同的是,mongodb定义不是Interface,而是class类,类里面引用MongoTemplate
对像对mongodb操作
import com.clockbone.entity.UserInfo;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service
public class UserRepository {
@Resource
private MongoTemplate mongoTemplate;
public void save(UserInfo userInfo){
userInfo.setCreateTime(new Date());
mongoTemplate.save(userInfo);
}
public List<UserInfo> selectByParameter(UserInfo userInfo){
Criteria criteria = Criteria
.where("userId").is(userInfo.getUserId())
.and("userName").is(userInfo.getUserName())
;
Query query = new Query(criteria).with(new Sort(Sort.Direction.DESC, "createTime"));
return mongoTemplate.find(query, UserInfo.class);
}
}