springboot 2.0 中集成 MongoDB

springboot 2.0 关于 MongoDB 的基础使用:

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-data-mongodbartifactId>
dependency>
<dependency>
    <groupId>com.alibabagroupId>
    <artifactId>fastjsonartifactId>
    <version>1.2.39version>
dependency>

配置如下:

spring.data.mongodb.authentication-database=     # 用于签名的MongoDB数据库
spring.data.mongodb.database=test                # 数据库名称
spring.data.mongodb.field-naming-strategy=       # 使用字段名策略
spring.data.mongodb.grid-fs-database=            # GridFs(网格文件)数据库名称
spring.data.mongodb.host=localhost               # MongoDB服务器,不能设置为URI
spring.data.mongodb.password=                    # MongoDB服务器用户密码,不能设置为URI
spring.data.mongodb.port=                        # MongoDB服务器端口,不能设置为URI
spring.data.mongodb.repositories.type=auto       # 是否启用MongoDB关于JPA规范的编程
spring.data.mongodb.uri=mongodb://localhost/test # MongoDB默认 URI
spring.data.mongodb.username=                    # MongoDB服务器用户名,不能设置为URI

如下图所示,设置 实现Serializable 接口, 在类名上 直接生成序列号;
springboot 2.0 中集成 MongoDB_第1张图片
springboot 2.0 中集成 MongoDB_第2张图片

demo 分享:
https://github.com/medoo-Ai/mongo

这里主要 列举了 MongoDB 的基础使用,CRUD
下面 是更新的API
查询的如下,基本涵盖了 MongoDB 的基础使用;

    @Override
    public DeleteResult deleteUser(Long id) {
        Criteria criteria = Criteria.where("id").is(id);
        Query query = Query.query(criteria);
        return this.mongoTemplate.remove(query, User.class);
    }
    @Override
    public List<User> findUsers(String userName, String note, Integer skip, Integer limit) {
        Criteria regex = Criteria.where("userName").regex(userName).and("note").regex(note);
        // 跳过 sikp  个,  返回  limit 个
        Query query = Query.query(regex).skip(skip).limit(limit);
        return this.mongoTemplate.find(query, User.class);
    }

下面说下 ,集成JPA 的使用;

JPA 一般查询和 自定义的查询,这里说下自定义查询:
自定义 查询 , 自定义查询方法 ,需要在 main 方法中配置 该配置类;

@SpringBootApplication(scanBasePackages = "com.mongo.cn.demo")
@EnableMongoRepositories(basePackages = "com.mongo.cn.demo.repository",
// 自定义的后缀  Impl
repositoryImplementationPostfix = "Impl"
)
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

自定义查询的是实现类如下:

@Repository
public class UserRepositoryImpl {
    @Autowired
    private MongoTemplate mongoTemplate;

    public User findUserByIdOrUserName(Long id, String userName) {
        //  使用criteria  创建
        Criteria criteriaId = Criteria.where("id").is(id);
        Criteria criteriaUserName = Criteria.where("userName").is(userName);
        Criteria criteria = new Criteria();
        // 使用$or
        criteria.orOperator(criteriaId, criteriaUserName);
        Query query = Query.query(criteria);
        return mongoTemplate.findOne(query, User.class);
    }
}

cirteria 创建查询,然后使用criteria 对象 构建 or 条件查询,完成自定义查询实现类;
完成以后在main 类中,进行自动类的配置;、

你可能感兴趣的:(MogoDB数据库)